次の方法で共有


ISR コンテキスト情報の提供

入力時に、ISR は、ルーチンを登録するために IoConnectInterruptEx を呼び出したときにドライバーが設定したコンテキスト領域へのポインターを受け取ります。

ほとんどのドライバーは、割り込みを生成する物理デバイスを表すデバイス オブジェクトか、そのデバイス オブジェクトのデバイス拡張機能にコンテキスト ポインターを設定します。 デバイス拡張機能では、ドライバーは、ドライバーの ISR と DpcForIsr ルーチンの状態情報を格納できます。後者は、通常、デバイスが割り込む原因となった各要求を満たすためにほぼすべての I/O 処理を行います。

通常、ドライバーはデバイス拡張機能を使用して、各デバイスの割り込みオブジェクトへの (IoConnectInterruptEx への呼び出しから返る) ポインターを格納します。 また、ドライバーは通常、ISR がサポートするデバイスによって割り込みが発行されたかどうかを ISR が判断するための情報をデバイス拡張機能に格納します。

(また、割り込みオブジェクト ポインターは、ドライバーが割り当てる非ページ プールに格納できます)。