2016-02-25 57 views
0

我有Windows内核模式驱动程序和用户模式DLL作为驱动程序和GUI应用程序之间的中间层。从用户模式发送IRP_MJ_SYSTEM_CONTROL请求

我使用DeviceIoControl函数发送请求IRP_MJ_DEVICE_CONTROL从用户模式的DLL驱动程序,它工作得很好。

但我想从用户模式发送IRP_MJ_SYSTEM_CONTROL请求以及。我的驱动程序源代码中包含pnp.c模块,并执行DispatchSystemControl例程,该例程处理IRP_MN_START_DEVICE,IRP_MN_START_DEVICE,IRP_MN_REMOVE_DEVICE等IRP。

我可以看到,该处理器非常适用于例如IRP_MN_REMOVE_DEVICE处理程序被调用时,我删除我的设备中的任何时间。

但我想知道有没有办法使用一些功能来发送从用户模式IRP_MJ_SYSTEM_CONTROL请求,例如以同样的方式,因为我使用的DeviceIoControl

回答

0

IRP_MJ_SYSTEM_CONTROL请求是由内核模式发送发送IRP_MJ_DEVICE_CONTROL WMI的驱动程序。详情请参阅this MSDN article