Я использую драйвер устройства, который иногда пропускает прерывание от оборудования.
Для чтения данных с устройства я использую функцию
BOOL WINAPI ReadFile(
__in HANDLE hFile,
__out LPVOID lpBuffer,
__in DWORD nNumberOfBytesToRead,
__out_opt LPDWORD lpNumberOfBytesRead,
__inout_opt LPOVERLAPPED lpOverlapped
);
Эта функция навсегда блокируется, когда драйвер устройства пропускает прерывание.Это приводит к остановке программы, и для ее решения необходимо перезапустить окна.
Чтобы это исправить, я хочу использовать ограничение времени ожидания при вызове Readfile ().Но когда я использую
BOOL WINAPI SetCommTimeouts(
__in HANDLE hFile,
__in LPCOMMTIMEOUTS lpCommTimeouts
);
, происходит сбой с кодом ошибки 87 (недопустимые параметры).Видимо, я не могу использовать этот тайм-аут на дескрипторе драйвера устройства.Как я могу это исправить?Есть ли другой способ установить ограничение времени ожидания для драйвера устройства?
спасибо