Power States (Windows Embedded CE 6.0)

1/6/2010

Power Manager expects all managed devices to support one or more Device Power States. There are a limited number of device power states, and the device must inform Power Manager of its power consumption characteristics. Device power states generally trade off performance for low power consumption.

Some applications may require that a device be maintained at a certain device power level. For example, a streaming audio application might require that its network card and audio codec stay powered at a high level while music is playing. A streaming video application might need network and audio, and it might want to keep the display from going into screen-saver mode and keep the backlight on. Applications can request that Power Manager set minimum device power-state requirements, using the SetPowerRequirement and ReleasePowerRequirement functions.

Power Manager manages device power states within the context of system power states that are defined by the OEM. System power states are described in the registry, and any number can be defined. System power states impose an upper bound on device power states.

State Table

Current State Transition New State

Suspended

Wake source event

Resuming

Suspended

Power Manager

SetSystemPowerState; flags are POWER_STATE_SUSPEND, POWER_STATE_OFF, or POWER_STATE_CRITICAL.

Resuming

15-second timeout

Unattended

Resuming

On/off event

On

Resuming

On event

On

Resuming

Enter unattended

Increments the UREF count, and sets the state to Resuming.

Resuming

Power Manager

Cannot be set by SetSystemPowerState.

Unattended

UREF set to zero

Suspended

Unattended

SystemIdle timeout

Suspended

Unattended

SystemIdleTimerReset

Unattended

Unattended

On/off event

On

Unattended

On event

On

Unattended

Power Manager

Cannot be set by SetSystemPowerState.

Screen Off

SystemIdle timeout

Suspended

Screen Off

SystemIdleTimerReset

Screen off

Screen Off

On/off event

On

Screen Off

On event

On

Screen Off

Power Manager

SetSystemPowerState; flag is POWER_STATE_IDLE.

On

SystemIdle timeout

Suspended

On

SystemIdleTimerReset

On

On

On/off event

Unattended

On

On event

On

On

Backlight timeout

BacklightOff

On

User timeout

UserIdle

On

Power Manager

SetSystemPowerState; flag is POWER_STATE_ON.

BacklightOff

SystemIdle timeout

Suspended

BacklightOff

SystemIdleTimerReset

BacklightOff

BacklightOff

On/off event

Unattended

BacklightOff

On event

On

BacklightOff

User input

On

BacklightOff

User timeout

UserIdle

BacklightOff

Power Manager

Cannot be set by SetSystempowerState.

UserIdle

SystemIdle timeout

Suspended

UserIdle

SystemIdleTimerReset

UserIdle

UserIdle

On/off event

Unattended

UserIdle

On event

On

UserIdle

User input

On

UserIdle

Power Manager

SetSystemPowerState; flag is POWER_STATE_USERIDLE.

Remarks

If the UserIdle timeout is less than than the backlight timeout, transition straight to the UserIdle state, and do not go back to BacklightOff when backlight timeout occurs.

The keyboard driver sets events for the power button. It no longer sends VK_OFF.

The keyboard driver no longer needs to check wake source and put the system into the On state.

The keyboard driver no longer needs to check screen state and turn the screen on for the power button.

It is possible that something will still call VK_OFF to turn the system off. Power Manager and the Graphics, Windowing, and Events Subsystem (GWES) need to handle this correctly for backward compatibility.

EnterUnattendedMode increments the reference count of UREF in any state.

LeaveUnattendedMode decrements UREF, if it is not zero, in any state.

See Also

Reference

SetPowerRequirement
ReleasePowerRequirement

Concepts

Device Power States
System Power States
Device and System Power State Names

Other Resources

Power Management