Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

First the question; How do I figure out what is preventing my Windows 7 computer from going into sleep mode?

Second; some background...

I've been struggling with this for a few days and am utterly perplexed. I setup sleep mode on my Windows 7 PC a few weeks ago, and all was well. The PC would sleep as expected and I was snuggly in knowing that my computer was saving power and some wear and tear on the components (we'll leave the 'is it better to sleep' debate for another thread/day, please don't start it).

Well, I noticed the other night that my system stopped ever going to sleep. I set the sleep time down to 1 minute and wandered fully away from the PC (ensuring that no errant mouse or keyboard movements would occur) and the PC never went to sleep. I've also observed this over longer intervals as well, such as overnight.

  • I have sleep mode enabled, of course
  • "multimedia settings - When Sharing Media" is set to allow the computer to sleep.
  • "powercfg -lastwake" show nothing of interest, since it never goes to sleep and can't wake up.
  • "powercfg /requests" shows 3 entries - all "[DRIVER] ?". I assume that 2 of these are my mouse and keyboard - as I've recently used them to run the powercfg command. I'm at a loss for the third though.
    • I've unhooked all USB peripherals save for my keyboard and mouse.
  • Wake on LAN is disabled in my BIOS.
  • I know that you can disable all apps from waking/preventing sleep - but I want the ability to remain for those apps that do legitimately need to keep the system awake.

So; does anyone know of a way to figure out what the 3rd phantom "[DRIVER] ?" is in powercfg /requests?

share|improve this question
add comment

1 Answer

Bingo. I found it. An ISO mounting utility I run had a file mounted and opened across the network. Apparently if a file is open for read across the network, Windows is prevented from sleeping.

On another note - I discovered a little quirk with the "powercfg" utility. It seems to make a difference what type of terminal you run it from. Running under cygwin and Console2 gave false and erratic reports from the program (including a 'could not load energy.dll' error from running powercfg -ENERGY). At first I thought the issues with '[DRIVER] ?' were just a matter of the program not having sufficient information to determine the driver; but it was really a symptom of not being executed under a standard 'cmd.exe' terminal.

As Emory points out in the comment below, the cause of this odd behavior is that powercfg requires elevated permissions - requiring that it be ran as Administrator. There is no warning built in to the program to alert the user, it will just return incorrect output (and possibly 'could not locate energy.dll' in the case of powercfg -ENERGY). It must be ran from a command prompt with elevated privileges.

Sooo... long story short... to determine what program is keeping your system from sleeping:

  • Run 'cmd.exe' with administrative privileges (this is key, powercfg will run under anything, but will give incorrect results)
  • Run "powercfg -requests" to get a listing of items currently preventing sleep.

I was able to determine that files open across the network were preventing sleep in my case.

share|improve this answer
1  
You are correct--powercfg must be run from an elevated command prompt, though the utility itself does not warn users of this fact. –  Emory Bell May 29 '10 at 23:10
    
Thanks for the confirmation. –  phantomdata May 30 '10 at 16:19
    
I would like to perform the cmd.exe and powercfg -requests steps that you described, but I need step by step instructions for me (not a PC Whiz!). 1. For example how do I run cmd.exe with administrative privileges? 2. When I type in cmd.exe, I am getting "C:\Users\Karl>". "Karl" is me (theoretically the Administrator). What do I type in next? Thanks. –  user115689 Jan 28 '12 at 6:31
    
@user115689 You can launch "cmd" as admin by opening up the Start Menu. Then type "cmd" to search for it. Then you can either right click it and select "Run as Administrator" or press <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>Enter</kbd> which will launch the selected program as admin. –  Dracs Jun 10 '12 at 10:38
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.