Overview of the Power Management Framework
Starting with Windows 8, the run-time power management framework (PoFx) supports power and clock management at the component (or subdevice) level. A device driver registers with PoFx to independently manage power usage in the individual components in a device.
PoFx provides the fine-grained control necessary to extend the time that a Windows portable computer, tablet PC, smart phone, or other mobile device can run on a battery charge. PoFx reduces power usage in a way that maintains the appearance of a mobile device that is always on and always connected.
PoFx extends but does not replace the power management support in earlier versions of Windows. Earlier versions of Windows support power management at the device level, but do not provide mechanisms to independently manage the power supplied to the individual components in a device. Device-level power management enables a driver to support D-states (for example, D0 is the fully on state) in a device. Component-level power management enables a driver to support F-states (for example, F0 is the fully on state) in a component in a device. In the absence of operating system support for component-level power management, some drivers can implement custom power controls for components, but these controls typically add complexity to drivers, and might be feasible only if component power settings are controlled within the device.
PoFx provides a device driver interface (DDI) through which a driver can supply status and capabilities information about the components in a device. This information includes the current activity level of each component, the time required by the component to change from one power state to another, and the amount of latency that can be tolerated by clients of the device when the component wakes from a low-power state. In addition, PoFx obtains system-wide information about the power and clock domains to which the component belongs. (The devices in a particular power domain share a common power rail; the devices in a particular clock domain share a common clock signal.)
Based on this information, PoFx makes intelligent decisions about when a component should enter a low-power state and which low-power state to enter. The decision process involves information from other components and other devices, and takes into account the dependencies between the devices and components in the various power and clock domains.
For more information, see Component-Level Power Management.