次の方法で共有


EVT_WDF_DEVICE_D0_ENTRY コールバック関数 (wdfdevice.h)

[KMDF と UMDF に適用]

ドライバーの EvtDeviceD0Entry イベント コールバック関数は、ドライバーのデバイスが D0 電源状態になったときに必要な操作を実行します。

構文

EVT_WDF_DEVICE_D0_ENTRY EvtWdfDeviceD0Entry;

NTSTATUS EvtWdfDeviceD0Entry(
  [in] WDFDEVICE Device,
  [in] WDF_POWER_DEVICE_STATE PreviousState
)
{...}

パラメーター

[in] Device

フレームワーク デバイス オブジェクトへのハンドル。

[in] PreviousState

以前のデバイスの電源状態を識別する WDF_POWER_DEVICE_STATE型の列挙子。

戻り値

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

このコールバック関数の戻り値の詳細については、「 デバイスエラーの報告」を参照してください。

フレームワークは、EvtDeviceD0Entry コールバック関数が FALSE と等しい状態 NT_SUCCESS値を返した後、ドライバーの EvtDeviceD0Exit コールバック関数を呼び出しません。

注釈

デバイスの EvtDeviceD0Entry コールバック関数を登録するには、ドライバーで WdfDeviceInitSetPnpPowerEventCallbacks を呼び出す必要があります。

ドライバーがデバイスの EvtDeviceD0Entry コールバック関数を登録している場合、フレームワークは、デバイスが動作 (D0) 状態になるたびに関数を呼び出します。 次のいずれかが発生すると、デバイスは D0 状態になります。

  • デバイスが列挙されます (デバイスが接続されているか、システムが再起動されたため)。
  • システムとそのすべてのデバイスは、低電力状態から動作状態に戻ります。
  • デバイスがアイドル状態だった (デバイスが低電力アイドルをサポートしている場合) ため、低電力状態になった後、デバイスは動作状態に戻ります。
  • プラグ アンド プレイ マネージャーは、システムのハードウェア リソースをシステムのデバイス間で再配布しました。
フレームワークは、デバイスが動作状態 (D0) に入った直後に EvtDeviceD0Entry コールバック関数を呼び出し、ドライバーで使用できますが、デバイスの割り込みが有効になる前に呼び出します。 PreviousState パラメーターは、デバイスが D0 状態になるまでのデバイスの電源状態を識別します。 フレームワークは、最初に EvtDeviceD0Entry を呼び出すときに、WdfPowerDeviceD3FinalPreviousState 値を提供します。

コールバック関数は、ファームウェアの読み込み、デバイスが低電力状態のときに無効になっているデバイス機能の有効化など、デバイスを完全に動作させるために必要な操作を実行する必要があります。

EvtDeviceD0Entry コールバック関数が、NT_SUCCESS(status) が FALSE と等しい状態値を返す場合、フレームワークは次の処理を行います。

  • デバイスが初めて起動する場合、フレームワークはデバイスの 順序の取り外し シーケンスを開始します。
  • デバイスが低電力状態から動作状態に戻っている場合、フレームワークはデバイスの 突然の削除 シーケンスを開始します。
これらの状況では、フレームワークはドライバーの EvtDeviceD0Exit コールバック関数を呼び出しません。

フレームワークが EvtDeviceD0Entry コールバック関数を呼び出すタイミングの詳細については、「 PnP と Power Management のシナリオ」を参照してください。

このコールバック関数を提供するドライバーの詳細については、「Function Drivers での PnP と Power Management のサポート」を参照してください。

EvtDeviceD0Entry コールバック関数は、IRQL = PASSIVE_LEVELで呼び出されます。 このコールバック関数を ページング可能にしないでください。

要件

要件
対象プラットフォーム ユニバーサル
最小 KMDF バージョン 1.0
最小 UMDF バージョン 2.0
Header wdfdevice.h (Wdf.h を含む)
IRQL PASSIVE_LEVEL (「解説」セクションを参照)

こちらもご覧ください

EvtDeviceD0Exit