EVT_WDF_INTERRUPT_ENABLE コールバック関数 (wdfinterrupt.h)

[KMDF と UMDF に適用]

ドライバーの EvtInterruptEnable イベント コールバック関数は、指定されたハードウェア割り込みを有効にします。

構文

EVT_WDF_INTERRUPT_ENABLE EvtWdfInterruptEnable;

NTSTATUS EvtWdfInterruptEnable(
  [in] WDFINTERRUPT Interrupt,
  [in] WDFDEVICE AssociatedDevice
)
{...}

パラメーター

[in] Interrupt

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

[in] AssociatedDevice

ドライバーが WdfInterruptCreate に渡したフレームワーク デバイス オブジェクトへのハンドル。

戻り値

EvtInterruptEnable コールバック関数は、STATUS_SUCCESSまたはNT_SUCCESS(status) が TRUE に等しい別の状態値を返す必要があります(関数でエラーが発生しない場合)。 それ以外の場合、この関数は、NT_SUCCESS(status) が FALSE状態値を返す必要があります。

注釈

EvtInterruptEnable コールバック関数を登録するには、ドライバーが WdfInterruptCreate を呼び出す前に、コールバック関数のアドレスを WDF_INTERRUPT_CONFIG 構造体に配置する必要があります。

フレームワークは、デバイスが動作 (D0) 状態に入るたびに、ドライバーの EvtInterruptEnable コールバック関数を呼び出します。 さらに、ドライバーは、 WdfInterruptEnable を呼び出すことによって、フレームワークが EvtInterruptEnable コールバック関数を呼び出す可能性 があります。 ほとんどのフレームワーク ベースのドライバーは WdfInterruptEnable を呼び出さないでください。これは、デバイスが動作 (D0) 状態に入るたびに、フレームワークによってドライバーの EvtInterruptEnable コールバック関数が呼び出されるためです。

EvtInterruptEnable コールバック関数を呼び出す前に、フレームワークはプロセッサの IRQL をデバイスの DIRQL に発生させ、割り込みオブジェクトのWDF_INTERRUPT_CONFIG構造体でドライバーが指定したスピン ロックを取得します。

バージョン 1.11 の KMDF 以降では、ドライバーは パッシブ レベルの割り込み処理を提供できます。 ドライバーがパッシブ レベルの割り込み処理を要求した場合、IRQL = PASSIVE_LEVEL で EvtInterruptEnable 関数を呼び出す前に、フレームワークは、ドライバーが割り込みオブジェクトの WDF_INTERRUPT_CONFIG 構造で構成したパッシブ レベルの割り込みロックを取得します。

EvtInterruptEnable コールバック関数が返された後、フレームワークは IRQL = PASSIVE_LEVEL でドライバーの EvtDeviceD0EntryPostInterruptsEnabled イベント コールバック関数を呼び出します。

フレームワークがドライバーの EvtInterruptEnable コールバック関数を呼び出すたびに、デバイスが同じ割り込みリソースを使用すると想定しないでください。 PnP マネージャーが システム リソースを再配布し、デバイスに新しい割り込みリソースを割り当てる場合があります。 ドライバーは WdfInterruptGetInfo を呼び出して、デバイスの割り込みリソースを決定できます。

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

要件

要件
対象プラットフォーム ユニバーサル
最小 KMDF バージョン 1.0
最小 UMDF バージョン 2.0
Header wdfinterrupt.h (Wdf.h を含む)
IRQL 「解説」を参照してください。

こちらもご覧ください

EvtDeviceD0EntryPostInterruptsEnabled

EvtInterruptDisable

WDF_INTERRUPT_CONFIG

WdfInterruptCreate

WdfInterruptEnable

WdfInterruptGetInfo