Device State D3 and System Wakeup

The D3 device state deserves special consideration because it has special semantics not strictly related to its power consumption level. Devices in the D3 state are allowed, but not required, to awaken the system from a suspend state.

The following guidelines help support the D3 state in device drivers:

  • Devices that can wake the system from a suspend state should not request the D3 state through DevicePowerNotify. This is because enabling a device as a wake source is not always appropriate on all platforms unless the system is going to enter a suspend state. The driver cannot distinguish IOCTL_POWER_SET requests for D3 that it has initiated itself from those initiated by the Power Manager as part of a system power state transition.
  • If desired, wake-enabled devices can define D2 and D3 to be identical except for enabling the wake feature.
  • Devices that cannot wake the system from a suspend state but that do have a lowest-power mode that can generate device activity are allowed to use D3 in self-management of power.
  • If a non-wake-enabled device is in D3 and the system suspends, it should transition to D4 in its XXX_PowerDown handler and back to D3 in its XXX_PowerUp handler. If it cannot do this, it should not attempt to support D3, but should transition to D4 when requested to go into D3.
  • The above guidelines imply that devices that support D3 are not guaranteed to be able to wake the system from a suspend state.

However, OEMs designing system power states and application developers calling SetPowerRequirement will consider the D3 state as having special properties when the system as a whole suspends. The D3 guidelines outlined here enable OEMs and application developers to request that any device go into D3 during a suspend state without concern for whether or not the device actually supports waking the system.

See Also

Device Power Management Guidelines

 Last updated on Tuesday, May 18, 2004

© 1992-2003 Microsoft Corporation. All rights reserved.