割り込みをサポートおよびサービスするためのコードは、WDF ドライバーと WDM ドライバーで似ています。 主な違いが 1 つあります:
- WDF ドライバーはWDFINTERRUPT オブジェクトを作成し、そのEvtDriverDeviceAddコールバックからWdfInterruptCreate を呼び出すことによって、割り込みサービス ルーチン (ISR) コールバックを登録します。
- WDM ドライバーは、KINTERRUPT 構造を作成し、IRP_MN_START_DEVICE処理中にそれを接続します。
WDF ドライバーの EvtInterruptIsr コールバックは、WDM ドライバーのInterruptService ルーチンと同じタスクを実行します。 EvtInterruptIsrコールバックは WdfInterruptQueueDpcForIsrを呼び出して、DISPATCH_LEVELで後で処理するために EvtInterruptDpcコールバックをキューに入れます。 応答として、フレームワークは、このコールバックを実行するシステム キューに DPC オブジェクトを追加します。
フレームワーク割り込みオブジェクトの詳細については、Handling Hardware Interruptsをご参照ください。