EVT_WDF_INTERRUPT_DISABLE コールバック関数 (wdfinterrupt.h)
[KMDF と UMDF に適用]
ドライバーの EvtInterruptDisable イベント コールバック関数は、指定されたハードウェア割り込みを無効にします。
構文
EVT_WDF_INTERRUPT_DISABLE EvtWdfInterruptDisable;
NTSTATUS EvtWdfInterruptDisable(
[in] WDFINTERRUPT Interrupt,
[in] WDFDEVICE AssociatedDevice
)
{...}
パラメーター
[in] Interrupt
フレームワーク割り込みオブジェクトへのハンドル。
[in] AssociatedDevice
ドライバーが WdfInterruptCreate に渡したフレームワーク デバイス オブジェクトへのハンドル。
戻り値
EvtInterruptDisable コールバック関数は、STATUS_SUCCESSまたは関数でエラーが発生しない場合に、NT_SUCCESS(status) が TRUE に等しい別の状態値を返す必要があります。 それ以外の場合、この関数は、NT_SUCCESS(status) が FALSE である状態値を返す必要があります。
注釈
EvtInterruptDisable コールバック関数を登録するには、ドライバーが WdfInterruptCreate を呼び出す前に、コールバック関数のアドレスをWDF_INTERRUPT_CONFIG構造体に配置する必要があります。
フレームワークは、デバイスが動作 (D0) 状態を離れるたびに、ドライバーの EvtInterruptDisable コールバック関数を呼び出します。 さらに、ドライバーは、WdfInterruptDisable を呼び出すことによって EvtInterruptDisable コールバック関数を呼び出すフレームワークを引き起こす可能性があります。 ほとんどのフレームワーク ベースのドライバーは WdfInterruptDisable を呼び出さないでください。これは、デバイスが動作 (D0) 状態を離れるたびに、フレームワークによってドライバーの EvtInterruptDisable コールバック関数が呼び出されるためです。
EvtInterruptDisable コールバック関数を呼び出す前に、フレームワークはプロセッサの IRQL をデバイスの DIRQL に上げ、ドライバーが割り込みオブジェクトのWDF_INTERRUPT_CONFIG構造体で指定したスピン ロックを取得します。
KMDF のバージョン 1.11 以降では、ドライバーは パッシブ レベルの割り込み処理を提供できます。 ドライバーがパッシブ レベルの割り込み処理を要求した場合、IRQL = PASSIVE_LEVEL で EvtInterruptDisable 関数を呼び出す前に、フレームワークは、ドライバーが割り込みオブジェクトの WDF_INTERRUPT_CONFIG 構造で構成したパッシブ レベルの割り込みロックを取得します。
EvtInterruptDisable コールバック関数を呼び出す前に、フレームワークは IRQL = PASSIVE_LEVELでドライバーの EvtDeviceD0ExitPreInterruptsDisabled イベント コールバック関数を呼び出します。
フレームワーク ベースのドライバーでの割り込みの処理の詳細については、「 ハードウェア割り込みの処理」を参照してください。
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
最小 KMDF バージョン | 1.0 |
最小 UMDF バージョン | 2.0 |
Header | wdfinterrupt.h (Wdf.h を含む) |
IRQL | 「解説」を参照してください。 |