次の方法で共有


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

[KMDF と UMDF に適用]

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

構文

EVT_WDF_DEVICE_D0_EXIT EvtWdfDeviceD0Exit;

NTSTATUS EvtWdfDeviceD0Exit(
  [in] WDFDEVICE Device,
  [in] WDF_POWER_DEVICE_STATE TargetState
)
{...}

パラメーター

[in] Device

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

[in] TargetState

デバイスが入力しようとしているデバイスの電源状態を識別する、WDF_POWER_DEVICE_STATE型指定された列挙子。

戻り値

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

備考

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

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

  • システムとそのすべてのデバイスは、動作状態を残し、低電力状態に入りようとしています。
  • デバイスが低電力アイドルをサポートしている場合、デバイスはアイドル状態であるため、低電力状態に入りようとしています。
  • プラグ アンド プレイ マネージャーは、システムのハードウェア リソースを再配布しようとしています。
  • ユーザーは、通常、アプリケーションのユーザー インターフェイスを使用して、デバイスを削除することを示しています。
フレームワークは、デバイスが予期せず削除された後に、EvtDeviceD0Exit コールバック関数も呼び出します (突然削除)。

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

デバイスが突然削除されていない限り、フレームワークは、デバイスの割り込みを無効にした直後に、デバイスの電源が D0 から減少する前に、このコールバック関数を呼び出します。 TargetState パラメーターは、デバイスが入力しようとしているデバイスの電源状態を識別します。

EvtDeviceD0Exit コールバック関数は、デバイスを D0 電源状態に復元するためにドライバーが後で必要とする情報を保存するなど、デバイスが指定された低電力状態になる前に必要な操作を実行する必要があります。

TargetState パラメーターが WdfPowerDevicePrepareForHibernation 場合、システムは休止状態ファイルを保存するときにデバイスを使用するため、ドライバーはデバイスをシャットダウンしないでください。

TargetState が WdfPowerDeviceD3Final 場合は、システムがオフになっているか、デバイスが削除されようとしているか、リソースの再調整 が進行中であると想定する必要があります。 ドライバーが情報を保存する必要がある場合は、ディスクまたはその他の永続的な記憶域メディアに書き込む必要があります。 ただし、WdfPowerDeviceD3Final 確認してから、デバイスを削除するためのクリーンアップ作業を行うのは正しくありません。 たとえば、アイドル状態のために Dx 電源状態になったデバイスが後で突然削除された場合、その EvtDeviceD0Exit は再び呼び出されません。 この作業を行う正しい場所は、代わりに EvtDeviceReleaseHardwareにあります。

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

必要条件

要件 価値
ターゲット プラットフォーム 万国
最小 KMDF バージョン 1.0
UMDF の最小バージョン する 2.0
ヘッダー wdfdevice.h (Wdf.h を含む)
IRQL PASSIVE_LEVEL

関連項目

EvtDeviceD0Entry