Реферат: Ещё раз о прямом доступе к аппаратуре
Ключевой метод
procedure TComWatchdogThread.Execute; var // структура, используемая Win32 для хранения внутренней информации при // асинхронной работе. Ничего кроме поля hEvent нам от неё не требуется eOverlapped: TOverlapped; // запрос ожидания асинхронного события изменения состояния порта //........................................................................... procedure InitWaitCommEvent; var eEventMask: DWORD; begin // ошибки ERROR_IO_PENDING нужно просто игнорировать - их наличие означает // только то, что последняя операция с портом ещё не завершена. // Что интересно, нельзя дважды подряд вызвать WaitCommEvent, т.е. // запросил событие - значит, дождись его. if not WaitCommEvent(FComHandle, eEventMask, @eOverlapped) and (GetLastError <> ERROR_IO_PENDING) then RaiseLastOSError; end; var // TWOHandleArray - этопростоготовыймассивиз 64 хендловдля // функции WaitForMultipleObjects. Мы используем только 3 хендла, // но для простоты воспользуемся готовым массивом на 64, чтобы // не связываться с ручным распределением памяти. eHandles: TWOHandleArray; eTime: Int64; eStatus: DWORD; eStubInstalled: Boolean; К-во Просмотров: 190
Бесплатно скачать Реферат: Ещё раз о прямом доступе к аппаратуре
|