从用户模式发送IRP_MJ_SYSTEM_CONTROL请求
Sending IRP_MJ_SYSTEM_CONTROL request from user-mode
我有Windows内核模式驱动程序和用户模式DLL作为驱动程序和GUI应用程序之间的中间层。
我使用DeviceIoControl功能将IRP_MJ_DEVICE_CONTROL请求从用户模式DLL发送到驱动程序,并且效果很好。
但是我也想从用户模式发送IRP_MJ_SYSTEM_CONTROL请求。我的驱动程序源代码中有 pnp.c 模块,其中包含实现 DispatchSystemControl 例程的 DispatchSystemControl 例程,该例程处理 IRP_MN_START_DEVICE、IRP_MN_START_DEVICE、IRP_MN_REMOVE_DEVICE 等 IRP。
我可以看到这个处理程序运行良好,例如IRP_MN_REMOVE_DEVICE当我删除设备时随时调用处理程序。
但是我想知道有没有办法使用某些功能从用户模式发送IRP_MJ_SYSTEM_CONTROL请求,例如与我使用 DeviceIoControl 发送IRP_MJ_DEVICE_CONTROL相同的方式
IRP_MJ_SYSTEM_CONTROL请求由 WMI 的内核模式驱动程序发送。有关详细信息,请参阅此 MSDN 文章
相关文章:
- 如何在c++中使用system()来运行包含空格的python脚本
- System.InvalidCastException - SQL to C++ - safe_cast<float>
- C++/CLI System.AccessViolation在托管类中调用非托管函数时出现异常
- 来自 Android 应用程序内部的 boost 类型的 boost::wrapexcept<boost::system::system_error> 的未捕获异常
- 程序在使用 system() 启动另一个可执行文件时停止
- 为什么我的 DeviceInformation 对象没有 System.Devices.InterfaceClassGuid 属性?
- 为什么"using System;"不被视为不良做法?
- C++ 合并字符串以'system'函数错误
- System.AccessViolationException:shared_ptr C# .NET 和 C++ 应用程
- 将 Vcl::Controls::TCaption aka (System::UnicodeString) 转换为 co
- 对 boost::system::d etail::system_category_instance 的未定义引用,从
- Python os.system() 返回错误值
- 使用 system() 函数在C++程序中运行 cmd 命令
- 如何使用 C/C++ 和 system() 系统调用以外的其他方法在 Linux 中获取文件功能?
- 在C++中,如何在第一个"system()"结束后执行第二个"system()"?
- system() 无法运行我的程序,因为空间
- How to recover system gcc compiler on centos 6
- 导出 c++ 函数并使用 c# System.AccessViolationException 中的函数
- g++ 中的 system() 函数
- System Verilog DPI - 在 cpp 中运行并行线程,在 SV 中运行另一个并行线程