Power Management Architecture
A version of this page is also available for
4/8/2010
Power Manager is a Control Panel application that manages devices independent of the base power management model.
The Power Manager interface provides flexibility to OEMs and device driver developers without sacrificing compatibility with the base model. In the base power model, devices receive notification that the OS is suspending and resuming. This notification occurs in an interrupt context, so devices are restricted regarding what they can do during a suspend state and how long they can take to do it. The following illustration describes the power management architecture.
Using Power Manager, devices receive power state change notifications as I/O controls. Because I/O controls run in a thread context, driver developers have much more flexibility in how they implement the power state change. Using I/O controls to manage power also enables separation of device power state from overall OS power state. Thus, some devices can be turned off while the OS is running, and others can be left on while most of the OS is suspended.
In addition to managing device power, Power Manager notifies applications about power-related events. For example, Power Manager informs interested applications when the OS resumes from a suspend state.
Power Manager acts as a mediator between devices, applications, and defined OS power states. It implements the following set of rules to communicate between those three parts:
- OS power states impose maximum power consumption limits on all devices.
- Applications impose minimum power consumption limits on specific devices to obtain minimum performance levels.
- Power Manager allows devices to intelligently manage their own power, as long as their power levels are between the maximum and minimum limits.
- If the minimum power consumption limit is set higher than the maximum, the power of the device remains elevated for as long as the application requires the device.
- Devices can implement one or more device power states. Device power states are limited in number. For more information, see Device Power States.
- If the OS transitions to a suspend state, application-imposed minimum power limits are set aside while the OS is in a suspend state.
Within the Power Manager framework, OEMs define OS power states that establish maximum device power states. Devices call DevicePowerNotify to regulate their own power levels, and applications call SetPowerRequirement to verify that the devices they need are running at an acceptable performance level.
Power Manager is implemented in Pm.dll, which is linked directly with Device.exe. Device.exe invokes entry points in Pm.dll when power management APIs are invoked.
See Also
Reference
DevicePowerNotify
SetPowerRequirement
Concepts
Power Manager and ACPI/APM
Suspend and Resume Power Callbacks
Other Power Management APIs
Device Power States
System Power States