WdfInterruptSynchronize 関数 (wdfinterrupt.h)
[KMDF と UMDF に適用]
WdfInterruptSynchronize メソッドは、割り込みオブジェクトのスピン ロックを保持しながら、デバイスの DIRQL で指定されたコールバック関数を実行します。
パッシブ レベルの割り込みオブジェクトの場合、このメソッドは、割り込みオブジェクトのパッシブ レベルの割り込みロックを保持しながら、指定されたコールバック関数をパッシブ レベルで実行します。
構文
BOOLEAN WdfInterruptSynchronize(
[in] WDFINTERRUPT Interrupt,
[in] PFN_WDF_INTERRUPT_SYNCHRONIZE Callback,
[in] WDFCONTEXT Context
);
パラメーター
[in] Interrupt
フレームワーク割り込みオブジェクトへのハンドル。
[in] Callback
EvtInterruptSynchronize コールバック関数へのポインター。
[in] Context
フレームワークが EvtInterruptSynchronize コールバック関数に渡すドライバー指定の情報への型指定されていないポインター。
戻り値
WdfInterruptSynchronize は 、EvtInterruptSynchronize コールバック関数が返すブール状態値を返します。
ドライバーが無効なオブジェクト ハンドルを提供すると、バグ チェックが発生します。
注釈
ドライバーで、割り込まずに実行する必要があるコードを実行し、デバイス割り込みのサービスを効果的に無効にする場合は、そのコードを EvtInterruptSynchronize コールバック関数に配置する必要があります。 コールバック関数の実行をスケジュールするには、ドライバーで WdfInterruptSynchronize を呼び出す必要があります。
WdfInterruptSynchronize メソッドは、EvtInterruptSynchronize コールバック関数の実行が完了した後に を返します。
WdfInterruptSynchronize を呼び出す代わりに、ドライバーは WdfInterruptAcquireLock と WdfInterruptReleaseLock を呼び出すことができます。
WdfInterruptSynchronize メソッドの詳細については、「割り込みコードの同期」を参照してください。
フレームワーク ベースのドライバーでの割り込みの処理の詳細については、「 ハードウェア割り込みの処理」を参照してください。
パッシブ レベルの割り込みの場合、ドライバーは IRQL = PASSIVE_LEVEL で WdfInterruptSynchronize を呼び出す必要があります。
要求ハンドラーなどの任意のスレッド コンテキストから WdfInterruptSynchronize を呼び出さないでください。
例
次のコード例は、 WdfInterruptSynchronize を呼び出して EvtInterruptSynchronize コールバック関数の実行をスケジュールする方法を示しています。
BOOLEAN synchronizeReturnValue;
synchronizeReturnValue = WdfInterruptSynchronize(
WdfInterrupt,
MyEvtInterruptSynchronize,
CallbackContext
);
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
最小 KMDF バージョン | 1.0 |
最小 UMDF バージョン | 2.0 |
Header | wdfinterrupt.h (Wdf.h を含む) |
Library | Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF) |
IRQL | <=DISPATCH_LEVEL |
DDI コンプライアンス規則 | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |