Investigating Sleep states in Windows 10
In last week’s article, Balance efficiency and performance with Windows 10 Power Options, I showed you how to configure a number of settings to conserve battery power. I explained that in addition to adjusting the length of idle time that must elapse before the display is turned off, you can adjust the amount of idle time that must elapse before the system is put into sleep mode.
I went on to explain that I chose 10 minutes before the computer is put into sleep mode, as shown in Figure A. I’ve found that using 5 and 10 minute settings for display and sleep provides a nice equilibrium between power savings and ease of use. If this laptop is idle between five and 10 minutes, the screen turns off to save battery power, but I can get back to work with a quick press of a key. If I am away longer than 10 minutes, the computer goes to sleep to save even more battery power, but to get back to work, I must press a key and then sign in.
I chose 10 minutes as the amount of idle time that must elapse before the computer is put into sleep mode.
Now, what I didn’t tell you is that a Windows system goes into multiple levels of sleep as it drifts off into its power saving mode. These levels are actually called Windows Sleep states.
In this article, I’ll describe how Windows Sleep states work. I’ll then show you how to use the PowerCfg command to investigate Windows Sleep states and the devices that support them on your Windows 10 system.
When Windows enters sleep mode, it may appear that the system simply goes into a low power state and remains that way. However, the process is a bit more complex. The system actually goes through several levels of Sleep. These levels, or more specifically, power states, are defined by the Advanced Configuration and Power Interface (ACPI) specification. All told, the ACPI spec lists six states, which are numbered S0 through S5. We’re mainly concerned about the Sleep states, but to keep everything in context, let’s look at them all.
At S0 the computer is in a Working power state and the system is fully operational. Even so, certain devices that are not currently being used can enter into a low power state to save power.
When a computer enters Sleep mode, S1 is the first level of Sleep. At this level, the processor clocks are stopped to save power. Memory still has power and maintains its content. When awakened, the system will typically return to S0 almost immediately—typically around two seconds.
After a period of time in S1, the computer enters S2, the second level of Sleep. At this level, the processor shuts off to save power. Memory still has power and maintains its content. When awakened, the system will typically return to S0 in two to five seconds. Keep in mind that the length of time can vary depending on your hardware.
After a period of time in S2, the computer enters S3, the third level of Sleep. At this level, in addition to the processor, other chips on the motherboard may shut off to save power. Memory still has power and maintains its content. When awakened, the system will typically return to S0 in five to eight seconds. Again, the length of time can vary depending on your hardware.
Looking through the descriptions of S1 thru S3, you can see that with each successive level, more of the computer is shut down. But S4 is hibernation. At this level, an image of the contents of memory is written to disk and power to all devices is turned off. However, a small trickle of power to the power button remains. When awakened, the length of time it takes the system to return to S0 depends on many factors—but it will definitely take longer than S1-S3.
At S5, the computer is shut down, although a small trickle of power to the power button remains. When the power button is pressed, the computer performs a cold boot to return to S0.
Note: If a computer in states S1, S2, or S3 loses all battery power, it must reboot to return to S0 and anything in memory is lost. However, if a computer in state S4 loses all battery power, it will still restart from its previous location because the contents of memory are retained in the hibernate file.
While the ACPI specs deal with the main system components, many devices also adhere to the six states. You can investigate the Sleep states of the devices attached to your system with the PowerCfg command.
The PowerCfg command
Among the parameters that the PowerCfg command provides is the DeviceQuery parameter and its 11 QueryFlags. To see all these QueryFlags, you can open a Command Prompt window, click the Maximize button to get a full-screen Command Prompt window, and type this command:
powercfg /devicequery /?
When you do, you’ll see the list of flags and descriptions shown in Table A.
These flags will allow you to find out what devices in your system support states S1 thru S4, as well as what devices support waking the system from states S1 through S3. You can also find out what devices in your system are currently configured to wake the system from any Sleep state.
For example, typing the command:
powercfg /devicequery S1_supported
will show you all the devices on your system that support the S1 Sleep state. Typing the command:
powercfg /devicequery wake_programmable
will show you all the devices on your system that you can configure to wake the system from a Sleep state.
What’s your take?
Have you ever wondered about the details of the devices on your system that can wake your system from a Sleep state? If so, you now know how to use the PowerCfg command to learn more. Share your advice and experiences in the discussion thread below.