IPowerPolicyCallbackWakeFromS0::OnArmWakeFromS0 方法(wudfddi.h)

[警告: UMDF 2 是最新版本的 UMDF,取代了 UMDF 1。 所有新的 UMDF 驱动程序都应使用 UMDF 2 编写。 没有将新功能添加到 UMDF 1,并且对较新版本的 Windows 10 上的 UMDF 1 的支持有限。 通用 Windows 驱动程序必须使用 UMDF 2。 有关详细信息,请参阅 UMDF入门 。]

驱动程序的 OnArmWakeFromS0 回调函数臂(即启用)设备,以便在处于低功率设备状态时触发唤醒信号(如果系统保持 系统工作状态(S0)。

语法

HRESULT OnArmWakeFromS0(
  [in] IWDFDevice *pWdfDevice
);

参数

[in] pWdfDevice

指向表示驱动程序设备之一的设备对象的 IWDFDevice 接口的指针。

返回值

如果作成功,则 OnArmWakeFromS0 回调函数必须返回S_OK或其他状态值,而 SUCCEEDED(状态)等于 TRUE 。 否则,它必须返回 SUCCEEDED(状态)等于 FALSE的状态值。

如果 SUCCEEDED(status) 等于 FALSE,则框架将调用驱动程序的 IPowerPolicyCallbackWakeFromS0::OnDisarmWakeFromS0 回调函数。 (框架不会向 PnP 管理器报告设备故障。

言论

如果驱动程序支持 IPowerPolicyCallbackWakeFromS0 接口,驱动程序必须提供 OnArmWakeFromS0 回调函数。

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

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

此过程按以下顺序发生:

  1. 框架确定设备在预设时间内处于空闲状态。
  2. 框架调用驱动程序的 OnArmWakeFromS0 回调函数。
  3. 框架请求设备的总线的驱动程序降低设备的电源。
在设备进入低功率状态之前,框架将立即调用驱动程序的 IPnpCallback::OnD0Exit 回调函数。

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

如果设备有以下情况,则无需提供 OnArmWakeFromS0 回调函数:

  • 是支持“选择性挂起”的 USB 设备。
  • 当系统保持完全供电时,无法关闭电源。
  • 不需要特殊的硬件作,使设备能够触发唤醒信号。
如果设备支持 USB“选择性挂起”,并且当驱动程序调用 IWDFDevice2::AssignS0IdleSettings时,如果驱动程序指定 IdleUsbSelectiveSuspend,则框架会在设备空闲时向 USB 总线驱动程序发送“选择性暂停”请求。

有关此回调函数的详细信息,请参阅 支持基于 UMDF 的驱动程序 Power-Down

要求

要求 价值
终止支持 在 UMDF 2.0 及更高版本中不可用。
目标平台 桌面
最低 UMDF 版本 1.9
标头 wudfddi.h (包括 Wudfddi.h)

另请参阅

IPowerPolicyCallbackWakeFromS0

IPowerPolicyCallbackWakeFroms0::OnDisarmWakeFromS0

IPowerPolicyCallbackWakeFroms0::OnWakeFromS0Triggered