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 を送信した後に呼び出されます。
このプロセスは、次の順序で実行されます。
- フレームワークは、デバイスが事前に設定された時間アイドル状態であったと判断します。
- フレームワークは、ドライバーの EvtDeviceArmWakeFromS0 コールバック関数を呼び出します。
- フレームワークは、デバイスの電源を下げるために、デバイスのバスのドライバーを要求します。
フレームワークがこのコールバック関数を呼び出すタイミングの詳細については、「PnP と電源管理のシナリオ を参照してください。
デバイスが次の場合は、EvtDeviceArmWakeFromS0 コールバック関数を指定する必要はありません。
- "選択的一時停止" をサポートする USB デバイスです。
- システムの電源が完全に切れたままでは、電源を切ることができません。
- デバイスがウェイク シグナルをトリガーできるようにする特別なハードウェア操作は必要ありません。
このコールバック関数の詳細については、「アイドル状態の電源ダウン をサポートを参照してください。
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の | 万国 |
最小 KMDF バージョン | 1.0 |
UMDF の最小バージョン を する | 2.0 |
ヘッダー | wdfdevice.h (Wdf.h を含む) |
IRQL | PASSIVE_LEVEL |
関連項目
EvtDeviceArmWakeFromSx の
EvtDeviceDisarmWakeFromS0 の