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.

majocha
  • 523
  • 1
  • 3
  • 11
  • I added another suggest: `powercfg -request` – surfasb Dec 22 '11 at 05:58
  • That's the command I used initially :) – majocha Dec 22 '11 at 09: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 '18 at 18:50

4 Answers4

17

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".

majocha
  • 523
  • 1
  • 3
  • 11
  • 1
    Thanks for adding the English translation - solved my issue too. – Praesagus Apr 30 '13 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 '15 at 02:01
  • For me it worked, in terms of removing the entry. (Turned out that HipChat prevented sleep mode and not the PERFBOOST entry.) – Simon A. Eugster Mar 02 '16 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 '18 at 03: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 '19 at 04: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.

surfasb
  • 22,452
  • 5
  • 52
  • 77
  • 3
    Unfortunately, the report was not helpful, there are no device problems indicated. – majocha Dec 22 '11 at 02: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 '11 at 02: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 '11 at 05: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 '11 at 08:40
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.

  • Please add further details to expand on your answer, such as working code or documentation citations. – Community Sep 03 '21 at 09: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 03 '21 at 09:45
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.

Nilzor
  • 4,499
  • 7
  • 23
  • 31