【发布时间】:2013-08-06 12:01:14
【问题描述】:
我想从一个驱动程序向另一个完全不同的驱动程序调用 IOCTL(不在同一个堆栈上)
我在网上查过,但他们只讲如何将IOCTL发送给较低的驱动程序,但不是我的情况。
p.s : 这两个驱动程序都是我编写的,所以我可以在第二个驱动程序中创建一个设备对象,但是我如何与之通信(我无法从内核调用 DeviceIOControl)
谢谢!
【问题讨论】:
我想从一个驱动程序向另一个完全不同的驱动程序调用 IOCTL(不在同一个堆栈上)
我在网上查过,但他们只讲如何将IOCTL发送给较低的驱动程序,但不是我的情况。
p.s : 这两个驱动程序都是我编写的,所以我可以在第二个驱动程序中创建一个设备对象,但是我如何与之通信(我无法从内核调用 DeviceIOControl)
谢谢!
【问题讨论】:
它与从用户空间发送 IOCTL 没有太大区别。只需使用ZwOpenFile 获取设备句柄,使用ZwDeviceIoControlFile 发送IOCTL。并且不要忘记为句柄设置 OBJ_KERNEL_HANDLE 属性。
【讨论】: