[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
По моему в DDK-шном (Win2K) не доработан механизм асинхронной записи/чтения, или я чего-то не понимаю. В DDK98 он вообще отсутствует напрочь.
Например, читаю данные от устройства в отдельном потоке:
...
bResult = ReadFile(hPipe, ........, &overlappedRead)
if (!bResult)
{
if (GetLastError() == ERROR_IO_PENDING)
{
GetOverlappedResult(hPipe, &overlappedRead, &dwRead,
TRUE);
}
}
...
Пока данные от устройства льются, все ок. Но стоит только
ему заткнуться - поток блокируется на GetOverlappedResult и
убить его нет никакой возможности, даже TerminateThread
бессилен :(
CancelIo(hPipe) не помогает.
E-mail: info@telesys.ru