Получаю хендл на устройство, принадлежащее моему драйверу. Хендл получается отлично, а вот DeviceIoControl работать не хочет, с ошибкой ERROR_INVALID_PARAMETER. Вроде все сделано по MSDN, а не работает и все...
С чем может быть проблема, подскажите пожалуйста.
HANDLE hPulsedrv;
DWORD dwBuffer, dwError;
BYTE bErrCounter = 0;
DWORD BytesReturned;
CEdit *pedtBuf;
CHAR szErrorString[64] = "Чтение не удалось. Ошибка };
CHAR szBuffer[64] = "";
BOOL bResult = TRUE;
hPulsedrv = CreateFile("\\.\\PulseMouse", FILE_ALL_ACCESS, 0,
0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (!hPulsedrv)
{ MessageBox(NULL, "Ошибка открытия устройства", "Ошибка", MB_OK);
ExitThread(1);
}
if (hPulsedrv == INVALID_HANDLE_VALUE)
{ dwError = GetLastError();
if (dwError != 32)
ExitThread(1);
}
do
{ bResult = DeviceIoControl(hPulsedrv, (DWORD)IOCTL_GET_PULSE, NULL,
0, &dwBuffer, 4, &BytesReturned, NULL);
dwError = GetLastError();
}