23

I have a problem with Windows 7 not sleeping.

PowerCfg -requests

says a "Legacy Kernel Caller" driver prevents the sleep mode. This is not very helpful or informative. How do I get more details about that object?

EDIT:

I found that

Powercfg -requestsoverride 

is the best way of dealing with such misbehaving drivers and software.

The option -requestsoverride is not very well documented. MSDN doesn't mention NAME is case sensitive, and to remove a request from overrides list you give the option with blank REQUEST parameter.

3
  • I added another suggest: powercfg -request
    – surfasb
    Dec 22, 2011 at 5:58
  • That's the command I used initially :)
    – majocha
    Dec 22, 2011 at 9:19
  • I'm sorry I'm still confused: what is the full command? I have the exact same "Legacy Kernel Caller" thing listed. I tried using powercfg /requestoverride driver Legacy Kernel Caller. It seems like it didn't do anything.
    – StormRyder
    Apr 14, 2018 at 18:50

4 Answers 4

14

Thanks for all the suggestions!

Finally I narrowed down the problem simply by trial and error, disabling devices and rebooting. It was a TV card driver hung and not releasing the power request despite being no longer in use.

EDIT:

Unfortunately, the problem with TV card is intermittently recurring. Googling shows it's also quite common. I found that disallowing the driver from making power requests with

Powercfg -requestsoverride Driver "Legacy Kernel Caller" System

solves it.

"Legacy Kernel Caller" is translated on different Windows language versions. On my Polish system it says "Starszego typu obiekt wywołujący jądro".

5
  • 1
    Thanks for adding the English translation - solved my issue too.
    – Praesagus
    Apr 30, 2013 at 15:26
  • 2
    When I run powercfg -requestsoverride Driver "Legacy Kernel Caller" System, where it succeeds, and then powercfg -requests, it still shows [DRIVER] Legacy Kernel Caller under SYSTEM: in the list of things preventing the computer from sleeping. So it doesn't work.
    – Neil
    Nov 28, 2015 at 2:01
  • For me it worked, in terms of removing the entry. (Turned out that HipChat prevented sleep mode and not the PERFBOOST entry.) Mar 2, 2016 at 14:01
  • I would still like to know how to determine which device is the culprit, without relying on just trial and error.
    – posfan12
    Apr 23, 2018 at 3:58
  • I set the config successfully, but I still cannot put my pc to sleep. //edit: Oh wow, 8 years later. Win 10 Pro.
    – Qwerty
    Feb 17, 2019 at 4:00
1

From the start menu, type in "Performance Information and Tools".

Click the Advanced Tools and click generate a System Health Report. It should point out legacy driver issues.

Edit:

Also try powercfg -request.

4
  • 3
    Unfortunately, the report was not helpful, there are no device problems indicated.
    – majocha
    Dec 22, 2011 at 2:03
  • about par, 50,000 pieces of info and the one piece of info you need you cant get. That is probably why I would look through the device list and GUESS and temporarily disable. I tried a powercfg -devicequery all_devices_verbose and get too much info, but it would be hard to weed through it all. Pour it into a spreadsheet, or search for an exact flag, but what is the flag?
    – Psycogeek
    Dec 22, 2011 at 2:36
  • @Psycogeek: That's the wrong command to run. Try powercg -requests. That just shows the drivers that are keeping the system from sleeping.
    – surfasb
    Dec 22, 2011 at 5:41
  • yes "requests" not "request" ? (not understanding that) . I was trying to find a way for the OP to discover possible items using the full list, which shows every devices power items. But is so thick with data it would take more info or more time to find one that might cause the error they got.
    – Psycogeek
    Dec 22, 2011 at 8:40
0

In my case it was Spotfiy that misbehaved. People are going ballistic in their forums over this bug.

Solution: Quit spotify before putting computer to sleep/hibernate

I still question why on earth Windows allow a poorly programmed piece of software to override all power plan settings and create wake timers. Microsoft should take their share of the blame here.

edit: Seems like issue is closed 3 days ago so I guess we should expect a fix soon.

0

I had this issue and the Legacy Kernal Caller kept coming back intermetently, even though it was verifiably on the list of things to be ignored.

In case anyone still has problems like that, here's a link to a batch file + explanation of how to set up a task.....both were a learning curve which I never want to repeat!!

https://github.com/richdyer2000/Sleepy

The batch file basically performs the sleep management:

a main loop runs for ~300s (standard loop with 300 iterations and a ping command with count=2 to control the duration), reading the output of 'powercfg -requests' each time. If it finds anything other than "DISPLAY:", "SYSTEM:", ..."ACTIVE LOCK SCRREN:", "None." or "[DRIVER] Legacy Kernel Caller" on a line, then the main loop is restarted.

If the end of the main loop is reached, the command "rundll32.exe powrprof.dll,SetSuspendState 0,1,0" is executed. On windows 10, it seems it is necessary to run "powercfg -hibernate off" to get a proper sleep state, so I include this in the code prior to the sleep command to make sure.

2
  • Please add further details to expand on your answer, such as working code or documentation citations.
    – Community Bot
    Sep 3, 2021 at 9:35
  • While this link may answer the question, it is better to include the essential parts of the answer here and provide the link for reference. Link-only answers can become invalid if the linked page changes.
    – Toto
    Sep 3, 2021 at 9:45

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