如何从驱动程序到另一个驱动程序(不在同一堆栈中)进行IOCTL调用(在Windows上)

时间:2013-08-06 12:01:15

标签: kernel driver ioctl irp

我想让IOCTL从一个驱动程序调用另一个完全不同的(不在同一堆栈上)

我已经在网上查了一下,但他们只讨论了如何将IOCTL发送给较低级别​​的驱动程序,但这不是我的情况。

p.s:我的两个驱动程序都很有用,所以我可以在第二个驱动程序中创建一个设备对象,但是如何与它进行通信(我无法从内核进行DeviceIOControl调用)

谢谢!

1 个答案:

答案 0 :(得分:3)

与从用户区发送IOCTL没有多大区别。只需使用ZwOpenFile来获取设备,ZwDeviceIoControlFile即可发送IOCTL。并且不要忘记为句柄设置OBJ_KERNEL_HANDLE属性。