[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 |
ヘッダー | wdfinterrupt.h (Wdf.h を含む) |
IRQL | (「解説」セクションを参照してください。 |