次の方法で共有


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 バスの電源管理イベント (PME) 信号を有効にするなどのバス固有の操作を処理します。

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

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

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

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

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

このコールバック関数の詳細については、「システム ウェイクアップ のサポートを参照してください。

必要条件

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

関連項目

EvtDeviceArmWakeFromS0

EvtDeviceArmWakeFromSxWithReason

EvtDeviceDisarmWakeFromSx