Windows 7 Driver doesn't get system code (IOCTL)

I'm newbie, so it's maybe stupid question)

So, I've got raid controller, wdf driver and application. It worked on Windows XP and Server 2003.
On Windows 7 it doesn't work(.
System function (like ::DeviceIoControl) began to return FALSE.
I think that this function work with DIRECT I/O. The last version is 4.4, it doesn't work with Vista, so 7 I think too, am I right? If yes, then tell me please how can I send system code to driver?

Also I got the mistake code by ::GetLastError().

if(dw = GetLastError()){ printf("%d -857\n", dw); getch();

So I can see in Console Application 317-857.
Can it be ERROR_MR_MID_NOT_FOUND? Is it because of Windows 7, too?

Realized that I was on the wrong way of solution the problem.
It's not because of Direct I/O.

In application I've got line, that shows me info about raid controller.
It's raid's number, pci slot, firmware and so on. It shows me right only first - raid's number. Everything else it shows wrong, like - ? or unknown.

So I think that the first time I call OpenDevice() to read raid's number, OS allows me to open device. Then I call CloseDevice().
Every time else when I try to open device to read something, OS doesn't allow access to me.
Can you explain me why, and how make OS allow access for many times?


This website is not affiliated, owned, or endorsed by Microsoft Corporation. It is a member of the Microsoft Partner Program.