У меня есть драйвер режима ядра Windows и пользовательский режим DLL в качестве промежуточного слоя между драйвером и графическим интерфейсом.Отправка запроса IRP_MJ_SYSTEM_CONTROL из пользовательского режима
Отправляю IRP_MJ_DEVICE_CONTROL запросы из DLL пользовательского режима в драйвер, используя функцию DeviceIoControl, и он работает хорошо.
Но я также хотел бы отправить запросы IRP_MJ_SYSTEM_CONTROL из пользовательского режима. У меня есть модуль pnp.c в исходном коде драйвера с реализацией подпрограммы DispatchSystemControl, которая обрабатывает такие IRP как IRP_MN_START_DEVICE, IRP_MN_START_DEVICE, IRP_MN_REMOVE_DEVICE и некоторые другие.
Я вижу, что эти обработчики хорошо работают, например, обработчик IRP_MN_REMOVE_DEVICE вызывается в любое время, когда я удаляю свое устройство.
Но я хотел бы знать, есть ли способ для отправки запросов IRP_MJ_SYSTEM_CONTROL из пользовательского режима, используя некоторые функции, например, таким же образом, как я отправить IRP_MJ_DEVICE_CONTROL с помощью DeviceIoControl