Best Practices for Power Manageable Device Drivers

Other versions of this page are also available for the following:

Windows Mobile Not SupportedWindows Embedded CE Supported

8/28/2008

Microsoft recommends that a device driver expose all possible power management capabilities, and that it function properly regardless of whether a run-time image takes advantage of the power management capabilities of the Windows Embedded CE OS. These power-management best practices might affect the external interface of a device driver.

The following list shows best practices for power management:

  • Expose the power management stream IOCTLs in client drivers.
  • Do not expose the deprecated IOCTL_POWER_QUERY.
  • Handle the XXX_PowerDown (Device Manager) and XXX_PowerUp (Device Manager) stream interface driver entry points correctly.
  • Call the bus parent of a device driver for power management.
    For example, after obtaining a handle to the bus with CreateBusAccessHandle, you can use functions such as GetDevicePowerState and SetDevicePowerState to request that the bus driver retrieve or set the device's power state.
  • Perform power management in a device driver when the run-time image does not take advantage of the power management that the OS provides.
  • Handle interleaved power management stream IOCTLs and interleaved I/O operations.

See Also

Reference

CEDDK Dynamic-Link Library Bus Access Reference

Concepts

Bus Drivers
Windows Embedded CE Drivers

Other Resources

Power Management I/O Controls
Power Management