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

こちらもご覧ください

EvtDeviceD0ExitPreInterruptsDisabled

EvtInterruptEnable

WDF_INTERRUPT_CONFIG

WdfInterruptCreate

WdfInterruptDisable