DPC オブジェクトの概要

ISR はできるだけ早く実行する必要があるため、ドライバーは通常、ISR が戻るまで割り込みの完了を延期する必要があります。 したがって、システムは、ISR からキューに入れることができ、後で ISR よりも低い IRQL で実行される遅延プロシージャ呼び出し (DPC) のサポートを提供します。

各 DPC は、システム定義の DPC オブジェクトに関連付けられます。 システムは、デバイス オブジェクトごとに 1 つの DPC オブジェクトを提供します。 システムは、ドライバーが DpcForIsr ルーチンと呼ばれる DPC ルーチンを登録するとき、この DPC オブジェクトを初期化します。 複数の DPC が必要な場合、ドライバーは追加の DPC オブジェクトを作成できます。 これらの追加の DPC は CustomDpc ルーチンと呼ばれます。

DPC オブジェクトの内容は、ドライバーから直接参照しないでください。 オブジェクトの構造はドキュメント化されていません。 ドライバーは、各デバイス オブジェクトに割り当てられているシステム提供の DPC オブジェクトにアクセスできません。 ドライバーは追加の DPC 用にストレージを割り当てますが、これらの DPC オブジェクトの内容はシステム ルーチンでのみ参照する必要があります。

DPC オブジェクトと DPC は、タイマーと共に使用することもできます。 詳細については、「タイマー オブジェクトと DPC」を参照してください。