次の方法で共有


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

[KMDF と UMDF に適用]

ドライバーの EvtDeviceArmWakeFromS0 イベント コールバック関数アーム (つまり、有効) デバイスを使用して、システムが システムの動作状態 (S0) のままである場合に、低電力デバイスの状態にある間にスリープ解除信号をトリガーできるようにします。

構文

EVT_WDF_DEVICE_ARM_WAKE_FROM_S0 EvtWdfDeviceArmWakeFromS0;

NTSTATUS EvtWdfDeviceArmWakeFromS0(
  [in] WDFDEVICE Device
)
{...}

パラメーター

[in] Device

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

戻り値

操作が成功した場合、EvtDeviceArmWakeFromS0 コールバック関数は、NT_SUCCESS(状態) が TRUE 等しいSTATUS_SUCCESSまたは別の状態値を返す必要があります。 それ以外の場合は、NT_SUCCESS(status) が FALSE 等しい状態値を返す必要があります。

NT_SUCCESS(status) が FALSE 等しい場合、フレームワークはドライバーの EvtDeviceDisarmWakeFromS0 コールバック関数を呼び出しません。 (フレームワークは、PnP マネージャーにデバイスの障害を報告しません。

備考

EvtDeviceArmWakeFromS0 コールバック関数を登録するには、ドライバーが WdfDeviceInitSetPowerPolicyEventCallbacks を呼び出す必要があります。 さらに、ドライバーは、その WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS 構造体 メンバー IdleCaps 内の IdleCanWakeFromS0 を設定する必要があります。

EvtDeviceArmWakeFromS0 コールバック関数は、デバイスがバスでウェイク シグナルをトリガーする外部イベントを検出するために必要なデバイス固有の操作を処理します。 バス ドライバーの EvtDeviceEnableWakeAtBus コールバック関数は、PCI バスの電源管理イベント (PME) 信号を有効にするなどのバス固有の操作を処理します。

ドライバーが EvtDeviceArmWakeFromS0 コールバック関数を登録している場合、デバイスがまだ D0 デバイスの電源状態である間、バス ドライバーがデバイスの電源状態を下げる前に、フレームワークがドライバーに代わって 待機/ウェイク IRP を送信した後に呼び出されます。

このプロセスは、次の順序で実行されます。

  1. フレームワークは、デバイスが事前に設定された時間アイドル状態であったと判断します。
  2. フレームワークは、ドライバーの EvtDeviceArmWakeFromS0 コールバック関数を呼び出します。
  3. フレームワークは、デバイスの電源を下げるために、デバイスのバスのドライバーを要求します。
デバイスが低電力状態になる直前に、フレームワークはドライバーの EvtDeviceD0Exit コールバック関数を呼び出します。

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

デバイスが次の場合は、EvtDeviceArmWakeFromS0 コールバック関数を指定する必要はありません。

  • "選択的一時停止" をサポートする USB デバイスです。
  • システムの電源が完全に切れたままでは、電源を切ることができません。
  • デバイスがウェイク シグナルをトリガーできるようにする特別なハードウェア操作は必要ありません。
デバイスが USB "選択的一時停止" をサポートしており、ドライバーが WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS 構造体の IdleCaps メンバー内の IdleUsbSelectiveSuspend を設定する場合、デバイスが一定の時間アイドル状態になったときに、フレームワークは USB バス ドライバーに "選択的な中断" 要求を送信します。

このコールバック関数の詳細については、「アイドル状態の電源ダウン をサポートを参照してください。

必要条件

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

関連項目

EvtDeviceArmWakeFromSx

EvtDeviceDisarmWakeFromS0