В моем основном ноутбуке различные проблемы с электропитанием возникают часто, что объяснимо работой в инсайдерских сборках. Однако и в стабильной версии 1803 я заметил, что моя система перестала уходить в сон. При этом монитор выключался через указанный промежуток времени, что намекало на правильное определение системой состояния бездействия.
Я выставил маленький период перехода в сон, 1-2 минуты и приступил к диагностике.
Проверка запросов к подсистеме питания от приложений и драйверов
Первым делом надо смотреть в powercfg, что удерживает ОС от перехода в сон. Процессы и драйверы, обращающиеся к подсистеме электропитания, можно увидеть в командной строке от имени администратора:
powercfg -requests
Сразу видно, что запрос к SYSTEM идет от DRIVER — в данном случае, Realtek использует аудиопоток.
В списке также может присутствовать 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 продолжал использовать аудиопоток, хотя был внесен в исключения.
Я поплясал немножко с бубном вокруг исключений, но успеха не добился. Быстрое гугление подтвердило, что в некоторых случаях они не срабатывают. Это типично для 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)"
Мы пойдем другим путем ©
Вычисление процесса, использующего подсистему звука
Известно, что черными делами занимается драйвер Realtek. Очевидно, он загружается при старте системы, поэтому имя файла несложно выяснить с помощью Autoruns.
Три записи относятся к двум файлам, один из которых – панель управления, судя по имени. Поэтому объектом интереса стал ravbg64.exe.
В Process Explorer от имени администратора я открыл нижнюю панель сочетанием Ctrl + L, перешел в нее и нажал kbd class=»dark»>Ctrl + D, чтобы увидеть список библиотек и дескрипторов процесса. Конечно, там очень много всего, но меня интересовало, что может использовать аудиопоток. Поэтому мое внимание быстро привлекла библиотека AudioSes.dll с описанием Audio Session.
Ctrl + Shift + F по audioses.dll выдает список процессов, вовлеченных в звуковую сессию. Под подозрение попали сторонние приложения и драйверы (за исключением самого Realtek), выделенные на картинке.
Закрыв Telegram и TeamViewer, я повторил проверку запросов, но ничего не изменилось. Я отключил драйвер Synaptics в msconfig – Службы – Не показывать службы Microsoft и перезагрузился, но запрос от Realtek не исчез.
Так, а что там SearchUI.exe может слушать? Графический интерфейс поиска… да это же Cortana! И она настроена откликаться на голосовое обращение. (У меня английский интерфейс.)
Действительно, после отключения этого параметра и контрольной перезагрузки SearchUI перестал использовать сессию аудио, а запрос от Realtek к подсистеме электропитания исчез! Соответственно, наладился и уход в сон.
Заключение и мысли по поводу
Голосовым помощником я пользуюсь нечасто (при необходимости Cortana можно вызвать сочетанием клавиш), и нормальный сон системы для меня важнее. Поэтому проблему я счел для себя полностью решенной, но осталась пара вопросов. Они очень похожи на баги, которые я занес в Feedback Hub (поддержка инсайдеров приветствуется):
- Параметр “Hey Cortana” препятствует уходу в сон
- Не работает игнорирование запросов драйвера Realtek к подсистеме электропитания
Можно спорить, является ли первая проблема багом или так и задумано — раз Cortana должна слушать, то и спать не должна. Но такое поведение неочевидно и нигде не описано (про повышенный расход батареи предупреждают, кстати). Оно не создает проблем лишь на современных устройствах с InstantGo, в которых не используется традиционный сон. Возможно, в представлениях и мечтах Microsoft такие устройства сейчас у всех, но реальность суровее.
Upd. Буквально на следующий день после публикации статьи я зашел в настройки Cortana и обнаружил, что там добавили параметр, контролирующий уход в сон при работе от элкетросети. Теперь Cortana не препятствует уходу в сон (я проверил), но при желании можно переопределить это поведение.
Так или иначе, цель статьи в том, чтобы показать вам простой прием решения распространенной задачи, а также подход к диагностике более сложной проблемы с помощью утилит Sysinternals.
У вас возникают проблемы со сном / гибернацией в Windows 10?
- Да (43%, голосов: 135)
- Нет (27%, голосов: 86)
- Не пользуюсь этими режимами (17%, голосов: 53)
- Моего варианта тут нет / У меня не Windows 10 (12%, голосов: 39)
Проголосовало: 313 [архив опросов]
kolleonid
Здравствуйте.
У меня проблема была из-за криво ставших драйверов.
Но из статьи я как всегда подчерпнул интересное и нужное. Спасибо.
Vadim Sterkin
«Криво вставшие драйверы» труднее воспроизвести, но я бы подходил к диагностике так же.
kolleonid
Согласен. Еще раз спасибо за статью.
P.S Впрочем как и все остальные.
Александр М
Проголосовал последний вариант, хотя до возвращения на 7 был первый. Почти год мучился с этой и прочими особенностями десятки, в результате все-таки пришел к заключению, что я не совсем готов к неисчерпаемым чудесам этой системы.
Software Expert
У меня тоже на ноутбуке Windows 10 April 2018 Update регулярно не уходит в сон :-( Русский интерфейс, Кортана отключена. После вашей заметки в настройках ОС выставил запрет всем приложениям (кроме Skype) на доступ к микрофону — может, поможет…
Vadim Sterkin
После моей заметки должны были быть более точечные действия, а ваши больше похожи на попытки попасть пальцем в небо :)
Ярослав Скворцов
Вот сюда. Очень самонадеяное заявление. И ежу понятно без исследований какие программы засирают фон.
Vadim Sterkin
Ежу…
Михаил Кутьин
Один ноутбук виснет при уходе в сон. Начинает греться, шуметь и не реагирует ни на что, кроме принудительного выключения. Однажды, побывав в руках у толкового одмина, он от этой болезни вылечился, но после переустановки системы всё вернулось, а контакт со специалистом был потерян.
Видел такую же проблему с десктопом под «семёркой», но там всё исправлялось параметром BIOS «Energy Star 4.0C Support», которого на проблемном ноутбуке уже не было.
Vadim Sterkin
Можно так пробовать
Владимир
Когда перешел с «семерки» на «десятку», начались проблемы с уходом в сон, точнее, система уходила в сон, но через несколько секунд просыпалась. Проблему решил с помощью powercfg (/LASTWAKE, /DEVICEDISABLEWAKE).
Alex Varlamov
У меня причина в Oracle Virtual Box. Команда
На сколько понял, нужно просто завершить этот процесс перед выключением ПК…
Sam Pavloff
Обратная ситуация засыпает, но не просыпается никак, приходится только нажимать reset, началось после подключения вебкамеры Logitech c920
Владимир
А когда прилетело очередное глобальное обновление (1709, если память не изменяет), комп перестал запускаться по времени, установленному в BIOS. После раскопок в параметрах выяснилось, что по умолчанию напротив пункта «Включить быстрый запуск (рекомендуется)» стоит галочка и если ее убрать, все возвращается на круги своя. Может кому пригодиться.
Vadim Sterkin
Да, быстрый запуск может создавать неожиданные проблемы, но они же могут проявляться и в гибернации. Тут только BIOS и драйверы…
Herz Mein
Не замечал таких проблем. Ноутбук засыпает. 1803 (17134.48)
Рауф Новрузов
Всем привет!
У меня была таже проблема я исправил ее и уже около месяца без проблем
Все дело в обновлении виндовс. В виндовс 10 все драйвера устанавливаются автоматически с обновлением. Проблема была обнаружена в драйвере intel management engine interface (IMEI), обновления винодовса ставят универсальный драйвер IMEI, а он не совсем корректно работает
Решение:
1. Отключить обновления(через сервисы) и быстрый запуск виндовс
2. Удалить драйвер intel management engine interface.
3. Перезагрузить
4. Скачать IMEI чипсет драйвер с официального сайта производителя
5. Установить и радоваться:)
Данная проблема наблюдалась в ноутах HP, Dell, Asus, Acer и на всех была решена этим способом
С выходом нового апдейта пока что все ок
Vadim Sterkin
А как вы дошли до этого решения? Точнее, как вычислили причину?
Евгений
На Win 10 проблем не возникало, хотя и ноуту лет 10, Acer Extensa 5220 (кодек ALC6xx). Когда стояла семёрка, насильно снёс реалтековские драйверы через удаление программ, затем через диспетчер устройств, после перезагрузки поставились родные аудиодрайверы Windows, звук даже получше стал, и со сном и с гибернацией всё стало, как надо… Думаю, на Win 10 (на 1709 не проверял) можно запретить установку обновлений драйверов realtek через майкрософтовскую тулзу, чтоб остались чисто родные голые системные аудиодрайверы.
Oleg Vinokurov
А у меня вот что в командной строке, как поступить?
Vadim Sterkin
Перестаньте раздавать интернет со своего компьютера или настройте игнорирование запросов от icssvc, как описано в первой части статьи.
device2000
У меня μTorrent не дает уйти в гибернацию, попробую добавить в исключение. Спасибо за статью.
Vadim Sterkin
Расскажите, получилось ли.
Software Expert
Вадим, может, и пальцем в небо, но уже третий день — тьфу, тьфу — полёт нормальный! :-)
Сергей
У меня всё хуже. Тут хоть подсказка была в виде наводки на драйвер. У меня отправляешь компьютер спать, гаснет экран, но лампочка мигать не начинает. Щелкаешь по клавиатуре — сразу, не создаётся впечатление, что он из сна выходит, появляется экран входа — словно просто экран загорается.
powercfg /LASTWAKE — ничего не даёт. Вообще. Просто один ноль.
powercfg -requests — вроде и даёт наводку, но что с ней делать — непонятно:
PERFBOOST:
[DRIVER] Устаревшая вызывающая сторона ядра
Power manager
Vadim Sterkin
Обновляйте биос, драйверы. Тестируйте в режиме чистой загрузки, отключив периферию. Дальше в форум — в каждом есть тема по сну, прикреплена.