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 回调函数未遇到错误,则它必须返回STATUS_SUCCESS或其他状态值,NT_SUCCESS (状态) 等于 TRUE 否则,它必须返回状态值,NT_SUCCESS (状态) 等于 FALSE

如果NT_SUCCESS (状态) 等于 FALSE,则框架将调用驱动程序的 EvtDeviceDisarmWakeFromSx 回调函数。 (框架不会向 PnP manager.) 报告设备故障

注解

若要注册 EvtDeviceArmWakeFromSx 回调函数,驱动程序必须调用 WdfDeviceInitSetPowerPolicyEventCallbacks。 驱动程序可以注册 EvtDeviceArmWakeFromSx 回调函数或 EvtDeviceArmWakeFromSxWithReason 回调函数,但不能同时注册这两个函数。

此回调函数处理设备特定的操作,这些操作使设备能够检测在总线上触发唤醒信号的外部事件。 总线驱动程序的 EvtDeviceEnableWakeAtBus 回调函数处理特定于总线的操作,例如启用 PCI 总线的电源管理事件 (PME) 信号。

如果驱动程序已注册 EvtDeviceArmWakeFromSxEvtDeviceArmWakeFromSxWithReason 回调函数,则框架会在设备仍处于 D0 设备电源状态之前调用它,然后总线驱动程序降低设备的电源状态,但在框架代表驱动程序发送 等待/唤醒 IRP 之后。

此过程按以下顺序发生:

  1. 框架确定系统即将进入低功率系统状态。
  2. 框架调用驱动程序的 EvtDeviceArmWakeFromSxEvtDeviceArmWakeFromSxWithReason 回调函数。
  3. 框架要求驱动程序设备总线降低设备的电源。
在设备进入低功率状态之前,框架立即调用驱动程序的 EvtDeviceD0Exit 回调函数。

有关框架调用此回调函数时的详细信息,请参阅 PnP 和电源管理方案

如果你的设备不需要特殊的硬件操作来触发唤醒信号,则无需提供 EvtDeviceArmWakeFromSx 或 EvtDeviceArmWakeFromSxWithReason 回调函数。

有关此回调函数的详细信息,请参阅 支持系统唤醒

要求

   
目标平台 通用
最低 KMDF 版本 1.0
最低 UMDF 版本 2.0
Header wdfdevice.h (包括 Wdf.h)
IRQL PASSIVE_LEVEL

另请参阅

EvtDeviceArmWakeFromS0

EvtDeviceArmWakeFromSxWithReason

EvtDeviceDisarmWakeFromSx