次の方法で共有


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 「解説」を参照してください。

こちらもご覧ください

EvtInterruptIsr

WDF_INTERRUPT_CONFIG

WdfInterruptSynchronize