我已经为Windows中的硬盘编写了一个过滤器驱动程序(如DDK的DiskPerf),我需要获取一些有关我的驱动程序附加到它的设备的信息,例如HardWareID。 我在IRP_MJ_READ函数中使用IoGetDeviceProperly。但是这种方法导致BSOD和BSOD说问题是“IRQL_NO_LESS_OR_EQUAL”。 MSDN说DispatchRead和IoGetDeviceProperly都在PASSIVE_LEVEL运行。 怎么了? 如何获取有关驱动程序附加到其上的设备的信息?
答案 0 :(得分:0)
可以在IRQL = APC_LEVEL处调用DispatchRead例程。
请参见Dispatch Routines and IRQLs
调用IoGetDeviceProperty并将设备信息保存在DispatchCreate中,并在DispatchRead中使用它。