次の方法で共有


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

こちらもご覧ください

EvtInterruptIsr

WDF_INTERRUPT_CONFIG

WdfInterruptSynchronize