Найти тему
Windows 11, 10, etc

Что мешает Windows 10 уйти в сон

В моем основном ноутбуке различные проблемы с электропитанием возникают часто, что объяснимо работой в инсайдерских сборках. Однако и в стабильной версии 1803 я заметил, что моя система перестала уходить в сон. При этом монитор выключался через указанный промежуток времени, что намекало на правильное определение системой состояния бездействия.

Я выставил маленький период перехода в сон, 1-2 минуты и приступил к диагностике.

Проверка запросов к подсистеме питания от приложений и драйверов

Первым делом надо смотреть в powercfg, что удерживает ОС от перехода в сон. Процессы и драйверы, обращающиеся к подсистеме электропитания, можно увидеть в командной строке от имени администратора:

powercfg -requests

Сразу видно, что запрос к SYSTEM идет от DRIVER — в данном случае, Realtek использует аудиопоток.

-2

В списке также может присутствовать WebRTC от Chrome, а сразу после перезапуска системы там можно увидеть запросы оптимизации загрузки, индекс поиска, но они быстро исчезают. Можно внести процесс или драйвер в список исключений, и он не будет препятствовать уходу в сон.

powercfg -requestsoverride DRIVER "Realtek High Definition Audio (HDAUDIO\FUNC_01&VEN_10EC&DEV_0269&SUBSYS_17AA2204&REV_1002\4&d00657&0&0001)" SYSTEM

Команда читается как «игнорировать запрос от DRIVER [полное имя драйвера] к SYSTEM».

Список исключений хранится в разделе реестра

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerRequestOverride

и выводится командой

powercfg -requestsoverride

Я перезагрузился для верности, но система отказывалась засыпать. Проверив исключения и список запросов, я обнаружил, что драйвер Realtek продолжал использовать аудиопоток, хотя был внесен в исключения.

-3

Я поплясал немножко с бубном вокруг исключений, но успеха не добился. Быстрое гугление подтвердило, что в некоторых случаях они не срабатывают. Это типично для legacy запросов, но тут был другой случай, и я не первый, кто с этим столкнулся.

В итоге я удалил Realtek из списка. Можно удалять записи в редакторе реестра или консоли. Команда почти такая же, как при добавлении, просто не указывается куда идет запрос, т.е. в данном случае в конце команды нет SYSTEM:

powercfg -requestsoverride DRIVER "Realtek High Definition Audio (HDAUDIO\FUNC_01&VEN_10EC&DEV_0269&SUBSYS_17AA2204&REV_1002\4&d00657&0&0001)"

Мы пойдем другим путем © Окончание истории в блоге.