2

我已经为 Windows 中的硬盘编写了一个过滤器驱动程序(例如 DDK 的 DiskPerf),我需要获取一些有关我的驱动程序附加到它的设备的信息,例如 HardWareID。我在 IRP_MJ_READ 函数中使用 IoGetDeviceProperly。但是这种方法会导致 BSOD 并且 BSOD 说问题是“IRQL_NO_LESS_OR_EQUAL”。MSDN 说 DispatchRead 和 IoGetDeviceProperly,都在 PASSIVE_LEVEL 运行。怎么了?如何获取有关驱动程序附加到它的设备的信息?

4

1 回答 1

0

DispatchRead 例程可以在 IRQL = APC_LEVEL 处调用。

请参阅调度例程和 IRQL

调用 IoGetDeviceProperty 并将设备信息保存在 DispatchCreate 中并在 DispatchRead 中使用。

于 2020-05-16T01:25:10.763 回答