电源管理框架概述

Windows 7 和早期版本的操作系统仅支持设备级电源管理,这使驱动程序能够支持设备中的 D 状态。 ACPI) 规范 (高级配置和电源接口定义 设备电源状态 D0 (完全打开) 到 D3 (完全关闭) ,并定义 系统电源状态 S0 (完全打开) 到 S5 (完全关闭) 。 这些版本的 Windows 不提供独立管理设备中各个组件供电的机制。 在这些版本的 Windows 中,某些驱动程序可以为组件实现自定义电源控件,但这些控件通常会增加驱动程序的复杂性,并且仅当在设备中控制组件电源设置时才可行。

从 Windows 8 开始,运行时电源管理框架 (PoFx) 添加了对组件级电源管理的支持。 组件(或子设备)是设备中的功能硬件单元,可以独立于同一设备中的其他组件打开或切换到低功耗状态。 例如,音频设备可能有单独的用于播放和录制的组件,其电源状态可以彼此独立管理。 如果正在使用播放组件,但录制组件处于空闲状态,则可以将录制组件切换到低功耗状态,而不会干扰播放组件的活动。

设备驱动程序向 PoFx 注册,以独立管理设备中各个组件中的电源使用情况。 PoFx 提供了必要的精细控制,以延长 Windows 便携式计算机、平板电脑、手机或其他移动设备在电池充电时可以运行的时间。 PoFx 通过保持始终打开和始终连接的移动设备的外观来减少电源使用。

驱动程序通常支持一定数量的组件电源状态(F0、F1 等),其中 F0 是完全打开状态。 所有组件都支持 F0 状态。 作为设备中组件的电源策略所有者 (PPO) 的驱动程序负责定义组件可能具有的任何其他低功率 Fx 电源状态。 (通常,设备的函数驱动程序是 PPO.) 此驱动程序确定每个组件的低功率 Fx 状态数和每个 Fx 状态的属性。 此驱动程序定义的 Fx 声明可能因设备中的组件而异。

PoFx (DDI) 提供设备驱动程序接口,驱动程序可通过该接口提供有关设备中组件的状态和功能信息。 此信息包括:

  • 每个组件的当前活动级别
  • 组件从一种电源状态更改为另一种电源状态所需的时间
  • 当组件从低功耗状态唤醒时,设备的客户端可以容忍的延迟量

此外,PoFx 还会获取有关组件所属的电源域和时钟域的系统范围信息。 (特定电源域中的设备共享一个通用电源轨;特定时钟域中的设备共享通用时钟信号。)

根据此信息,PoFx 会做出有关组件何时应进入低功耗状态以及要进入哪个低功耗状态的智能决策。 决策过程涉及来自其他组件和其他设备的信息,并考虑各种电源和时钟域中设备和组件之间的依赖关系。

若要开始使用 PoFx,请参阅 设备电源管理参考组件级电源管理