A Compact 7 device may or may not implement power management depending upon its purpose and upon the target hardware. For example, a handheld device or mobile phone would need to implement power management, whereas an always-on mains powered home climate control system need not. Power management can reduce the power consumption of a device by shutting down hardware or by putting it in a low power state. The CPU clock speed can be scaled down or even stopped if the CPU and memory can maintain state when the CPU is in this state. Also, with multicore CPUs, Compact 7 permits the shutting down of cores to save power.
Devices can also support power management by supporting all or some of the device power states. If they do, as the system changes state, they can do so as well. To do so they may implement the Stream Driver power functions (XXX_PowerUp or XXX_PowerDown) or implement the system power management IOCTLs. The recommended method is the IOCTLs.
Power Management Interface
This interface is a standard set of IOCTLs that a driver can implement, as shown in Table 32-6.
|POWER MANAGEMENT IOCTL||FUNCTION DESCRIPTION|
|IOCTL_POWER_CAPABILITIES||Checks device-specific capabilities.|
|IOCTL_POWER_GET||Gets the current device power state.|
|IOCTL_POWER_SET||Requests a change from one device power state to another.|
|IOCTL_REGISTER_POWER_RELATIONSHIP||Notifies the parent device so that the parent device can register all the ...|