Я пытаюсь разработать драйвер последовательного порта ядра для Windows с асинхронной связью. Я знаю, что должен определить вызовы IRP для чтения / записи и т. Д. Записать данные из приложения пользовательского режима в драйвер просто - просто вызовите соответствующий IRP, и вы в основном закончите. Если речь идет о чтении данных с серийника - я застрял. Какова механика чтения данных из серийника? Я не могу себе представить, что приложение пользовательского режима постоянно запрашивает чтение IRP (пустая трата ресурсов, если у вас нет данных для передачи из драйвера в приложение). Я думал, что драйвер может поднять флаг или что-то подобное, которые имеют данные для передачи. Пожалуйста, помогите мне понять, как это работает или как это делается в ядре Windows.
С уважением,
Luk