次の方法で共有


デバイスの開始に関する設計ガイドライン

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

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

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