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

[KMDF と UMDF に適用]

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

構文

EVT_WDF_DEVICE_ARM_WAKE_FROM_SX EvtWdfDeviceArmWakeFromSx;

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

パラメーター

[in] Device

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

戻り値

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

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

注釈

EvtDeviceArmWakeFromSx コールバック関数を登録するには、ドライバーで WdfDeviceInitSetPowerPolicyEventCallbacks を呼び出す必要があります。 ドライバーは 、EvtDeviceArmWakeFromSx コールバック関数または EvtDeviceArmWakeFromSxWithReason コールバック関数を登録できますが、両方を登録することはできません。

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

ドライバーが EvtDeviceArmWakeFromSx または EvtDeviceArmWakeFromSxWithReason コールバック関数を登録している場合、デバイスがまだ D0 デバイスの電源状態にある間に、バス ドライバーがデバイスの電源状態を下げる前に、フレームワークがドライバーの代わりに待機/スリープ解除 IRP を送信した後に、それを呼び出します。

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

  1. フレームワークは、システムが低電力システム状態に入りようとしていることを判断します。
  2. フレームワークは、ドライバーの EvtDeviceArmWakeFromSx または EvtDeviceArmWakeFromSxWithReason コールバック関数を呼び出します。
  3. フレームワークは、デバイスの電源を下げるために、デバイスのバスをドライバーに要求します。
デバイスが低電力状態になる直前に、フレームワークはドライバーの EvtDeviceD0Exit コールバック関数を呼び出します。

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

デバイスでウェイク シグナルをトリガーできる特別なハードウェア操作がデバイスに必要ない場合は、 EvtDeviceArmWakeFromSx または EvtDeviceArmWakeFromSxWithReason コールバック関数を指定する必要はありません。

このコールバック関数の詳細については、「 System Wake-Up のサポート」を参照してください。

要件

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

こちらもご覧ください

EvtDeviceArmWakeFromS0

EvtDeviceArmWakeFromSxWithReason

EvtDeviceDisarmWakeFromSx