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 に答える