次の方法で共有


WdfInterruptQueueWorkItemForIsr 関数 (wdfinterrupt.h)

[KMDF と UMDF に適用]

WdfInterruptQueueWorkItemForIsr メソッドは、フレームワーク割り込みオブジェクトの EvtInterruptWorkItem コールバック関数をキューに格納して実行します。

構文

BOOLEAN WdfInterruptQueueWorkItemForIsr(
  [in] WDFINTERRUPT Interrupt
);

パラメーター

[in] Interrupt

フレームワーク割り込みオブジェクトへのハンドル。

戻り値

ドライバーの ISR が IRQL = PASSIVE_LEVEL で実行されている場合、WdfInterruptQueueWorkItemForIsr は、割り込みオブジェクトの EvtInterruptWorkItem コールバック関数を正常にキューに入れた場合、TRUE を返します。 コールバック関数が以前にキューに入れられ、実行されていない場合、このメソッドは FALSE 返します。

ドライバーの ISR が IRQL = DIRQL で実行されている場合、フレームワークは最初に内部 DPC をキューに入れ、次にその DPC の作業項目をキューに入れます。 この場合、WdfInterruptQueueWorkItemForIsr は、フレームワークが内部 DPC を正常にキューに入れた場合、TRUE を返します。 このメソッドは、内部 DPC が以前にキューに登録されている場合 FALSE を返します。

ドライバーが無効なオブジェクト ハンドルを提供すると、バグ チェックが発生します。

注釈

ドライバーは通常、EvtInterruptIsr コールバック関数内から WdfInterruptQueueWorkItemForIsr 呼び出します。

割り込みオブジェクトの EvtInterruptWorkItem コールバック関数は、実行前に 1 回だけキューに入れられます。 したがって、WdfInterruptQueueWorkItemForIsr 呼び出しが成功した場合、後続の呼び出しは追加のコールバックをキューに入れなくなります。

フレームワーク ベースのドライバーでの割り込みの処理の詳細については、「ハードウェア割り込みの処理」を参照してください。

ドライバーが、EvtInterruptWorkItem コールバック関数を指定しない割り込みオブジェクトを使用して WdfInterruptQueueWorkItemForIsr 呼び出すと、バグ チェックが発生します。

必要条件

要件 価値
ターゲット プラットフォーム 普遍
最小 KMDF バージョン 1.11
UMDF の最小バージョン する 2.0
ヘッダー wdfinterrupt.h (Wdf.h を含む)
図書館 Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF)
IRQL <=DIRQL
DDI コンプライアンス規則 する DriverCreate(kmdf)

こちらもご覧ください

EvtInterruptDpc

EvtInterruptIsr

WdfInterruptCreate

WdfInterruptQueueDpcForIsr