我是驱动程序开发的新手。我有一个基本问题。
在编写 WDM 设备驱动程序时,可以调用IoBuildDeviceIoControlRequest / IoBuildSynchronousFsdRequest来分配要传递给另一个目标驱动程序的同步 IRP。基本要求之一是我们必须在调用这些函数之前 分配一个事件对象。而且,我们必须确保在目标驱动程序完成 IRP 时这个事件对象仍然可用。
我们真的可以从调用IoBuildDeviceIoControlRequest/IoBuildSynchronousFsdRequest的函数的本地范围分配该事件对象吗?即来自内核堆栈而不是来自非分页池。许多示例代码只是从本地范围分配事件对象,因此从内核堆栈中分配。但是,如果我们的调用驱动程序在目标驱动程序仍在处理我们的 IRP 时被分页,实际上会有问题吗?