次の方法で共有


デバイスの起動に関する設計ガイドライン

  • PnP マネージャーは、デバイスのすべてのドライバーが開始操作を実行したことを示す IRP_MN_START_DEVICE IRP が完了するまで、デバイスの作成要求を受け付けません。

  • DispatchPnP ルーチンは IRQL PASSIVE_LEVELのシステム スレッドのコンテキストで実行されるため、初期化時に排他的に使用するために ExAllocatePoolWithTag で割り当てられたメモリは、ドライバーがシステム ページ ファイルを保持するデバイスを制御しない限り、ページ プールから取得できます。 DispatchPnP ルーチンが制御を返す前に、ExFreePool でこのようなメモリ割り当てを解放する必要があります。

  • WDM デバイス ドライバーの ISR は、デバイスの起動時でもスプリアス割り込みによって呼び出されたかどうかを判断できる必要があります。 IRP_MN_START_DEVICEを処理するコード パス内の IoConnectInterrupt への呼び出しから戻ると、デバイスで割り込みが有効になっている場合、ISR をすぐに呼び出すことができます。