EVT_WDF_INTERRUPT_SYNCHRONIZE コールバック関数 (wdfinterrupt.h)
[KMDF と UMDF に適用]
ドライバーの EvtInterruptSynchronize イベント コールバック関数は、 EvtInterruptIsr コールバック関数と同期する必要がある操作を実行します。
構文
EVT_WDF_INTERRUPT_SYNCHRONIZE EvtWdfInterruptSynchronize;
BOOLEAN EvtWdfInterruptSynchronize(
[in] WDFINTERRUPT Interrupt,
[in] WDFCONTEXT Context
)
{...}
パラメーター
[in] Interrupt
フレームワーク割り込みオブジェクトへのハンドル。
[in] Context
ドライバーが WdfInterruptSynchronize を呼び出すときにドライバーが指定するドライバー提供の情報。
戻り値
EvtInterruptSynchronize コールバック関数は、操作が成功した場合に TRUE を返す必要があります。 それ以外の場合、この関数は FALSE を返す必要があります。
注釈
EvtInterruptSynchronize コールバック関数を実行するには、ドライバーで WdfInterruptSynchronize を呼び出す必要があります。
ドライバーがデバイスの IRQL (DIRQL) で処理するための割り込みオブジェクトを構成している場合、 EvtInterruptSynchronize コールバック関数を呼び出す前に、フレームワークはプロセッサの割り込み要求レベルを DIRQL に上げ、割り込みオブジェクトの WDF_INTERRUPT_CONFIG 構造体でドライバーが指定したスピン ロックを取得します。
その結果、 EvtInterruptSynchronize コールバック関数の実行中に、割り込みオブジェクトの EvtInterruptIsr コールバック関数 (およびスピン ロックを保持している間に DIRQL で実行されるその他のコード) は実行できません。
EvtInterruptSynchronize コールバック関数は、短期間だけ実行されるように設計する必要があります。 通常、割り込みオブジェクトの他の EvtInterruptSynchronize または EvtInterruptIsr コールバック関数によってもアクセスされる割り込みデータにアクセスするために使用されます。
バージョン 1.11 の KMDF 以降では、ドライバーは パッシブ レベルの割り込み処理を提供できます。 ドライバーがパッシブ レベルの割り込み処理を要求した場合、IRQL = PASSIVE_LEVEL で EvtInterruptSynchronize 関数を呼び出す前に、フレームワークは、ドライバーが割り込みオブジェクトのWDF_INTERRUPT_CONFIG構造で構成したパッシブ レベルの割り込みロック を 取得します。
EvtInterruptSynchronize コールバック関数の詳細については、「割り込みコードの同期」を参照してください。
フレームワーク ベースのドライバーでの割り込みの処理の詳細については、「 ハードウェア割り込みの処理」を参照してください。
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
最小 KMDF バージョン | 1.0 |
最小 UMDF バージョン | 2.0 |
Header | wdfinterrupt.h (Wdf.h を含む) |
IRQL | 「解説」を参照してください。 |