支持系统唤醒

当系统处于低功耗状态时,某些设备可以检测外部事件(如传入的网络数据包),然后唤醒系统。 例如,如果 PCI 设备具有系统唤醒功能(如设备的电源管理功能 (PMC) 寄存器中所述),它会通过在 PCI 总线上引发电源管理事件 (PME) 信号来唤醒系统。

如果设备可以从系统范围的低功耗状态唤醒系统,电源策略所有者中的 EvtDriverDeviceAdd 回调函数必须执行以下两个步骤:

  1. 调用 WdfDeviceAssignSxWakeSettings 以指定:

    • 设备将进入的低功耗状态
    • 用户是否可以控制设备的空闲设置
    • 是启用还是禁用设备的唤醒功能

    有关这些设置的详细信息,请参阅 WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS 结构。

  2. 调用 WdfDeviceInitSetPowerPolicyEventCallbacks 以注册以下事件回调函数(如果需要它们用于设备):

公共汽车司机也参与唤醒系统。 设备总线的驱动程序通常提供 EvtDeviceEnableWakeAtBusEvtDeviceDisableWakeAtBus 回调函数。 这些函数在总线适配器上执行任何必要的操作,以启用和禁用设备从低功耗状态唤醒的功能。

当总线驱动程序确定设备已触发唤醒信号时,它必须调用 WdfDeviceIndicateWakeStatus 来通知框架应恢复设备的电源。 然后,框架将此信息传递给驱动程序堆栈中的其余驱动程序。

有关控制设备唤醒功能的注册表项的信息,请参阅 用户控制设备空闲和唤醒行为