Я согласен с LordDoskias. Вам необходимо создать объект устройства и сделать его доступным для области Win32. Затем вы можете использовать CreateFile
, ReadFile
, WriteFile
и уже упомянутые DeviceIoControl
для отправки запросов.
Для того, чтобы получать уведомления от драйвера в приложение, вы можете использовать так называемую модель перевернутый вызов . Вы отправляете некоторые IRP (через один из упомянутых механизмов) и делаете это асинхронно (или в отдельных потоках). Затем драйвер удерживает их, пока он не уведомит компонент пользовательского режима о чем-то, а затем вернет завершенный IRP. Альтернативные методы - установить какое-либо событие и получить запрос единой системы обмена сообщениями, какой бы драйвер не находился в какой-либо очереди ...
Суть в том, что нет прямого способа, которым драйвер может отправить некоторое сообщение в приложение пользовательского режима.