Что на самом деле делает быстрый запуск — почему «Завершение работы» в Windows не то же самое, что перезагрузка

· Обновлено: · · Windows, Быстрый запуск, Завершение работы, Управление питанием, ИТ-служба, Аппаратный ПК, PowerShell, Разработка под Windows

История изменений (первая версия, опубликована 4 Sep 2026)
Первая публикация

«Завершил работу, включил питание снова, а принтер не распознаётся. Затем перезагрузил — и заработало.»

Ключ к этой разнице — быстрый запуск Windows. Начиная с Windows 8, на ПК с поддержкой гибернации и включённой этой функцией «Завершение работы» — не операция, которая заново строит всё состояние Windows. Она закрывает приложения и пользовательский сеанс, но сохраняет состояние ядра, драйверов и служб и восстанавливает его при следующей загрузке. Это называют гибридным завершением работы.12

Напротив, «Перезагрузка» всегда выполняет полный цикл загрузки, независимо от настройки быстрого запуска. «Выключить и включить» и «перезагрузить» — не одна операция.1

Статья сначала показывает, как выбрать нужную операцию, затем переходит к причинам, изоляции по симптомам, проверке и решению о смене настройки. Заметки по реализации API и служб Windows собраны в главе 7. Читатели — ИТ-сотрудники, которые управляют Windows 10/11, и разработчики приложений Windows для аппаратных ПК и тестовых машин. Для проверки и настройки используется PowerShell 5.1 или новее.

1. Сначала вывод: выберите операцию под цель

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

Цель или проблема Операция или ответ, которые пробовать первым Подробности
Изолировать проблему или один раз сбросить состояние Windows Перезагрузка. Но не заключайте причину только потому, что помогло 3.1, 4.1
Полностью завершить Windows и также отключить питание Выполнить shutdown /s /t 0 3.2
Закончить отложенные обновления Выбрать «Обновить и перезагрузить» 4.3
Разбудить ПК ночью через Wake on LAN Пересмотреть состояние ожидания, а не то, включён ли быстрый запуск 4.4
Чтобы каждое «завершение работы» инициализировало машину Проверить роль машины, затем рассмотреть отключение быстрого запуска Глава 6

Основа этого выбора — следующие три различия.134

Три операции меню питания и что происходит на самом делеЗавершение работы по умолчанию гибридное и сохраняет ядро в файл гибернации. Перезагрузка всегда выполняет полный цикл загрузки. Гибернация сохраняет в файл гибернации и пользовательский сеанс.Завершение работыГибридное завершение работы (по умолчанию)Сохранить ядро в файл гибернацииПерезагрузкаПолный цикл загрузкиЗаново построить ядро, драйверы и службыГибернацияГибернация (S4)Сохранить всю память

Рис. 1: «Завершение работы» сохраняет состояние; «Перезагрузка» заново строит состояние на стороне Windows. Обычная гибернация сохраняет и пользовательский сеанс. Даже перезагрузка не отключает питание подключённых устройств.

«Сбросить один раз» и «менять, как завершаете работу каждый раз» — отдельные решения. Для обычных рабочих ноутбуков практичный выбор — оставить включённым и перезагружать, когда нужно. Microsoft также не рекомендует отключать быстрый запуск повсеместно.1

На схеме сплошная линия обозначает отношение, которое выполняется всегда, а пунктирная — условное отношение (условия указаны в пояснении к каждому отношению на странице сведений). Полный список отношений (всего 24, с доказательствами и степенью уверенности) и определения основных понятий собраны на странице сведений карты знаний (на японском). Данные: JSON-LD / Turtle

2. Как это устроено: Windows «восстанавливает» состояние вместо того, чтобы строить его заново

2.1 Где оно расходится с полным завершением работы

У Windows три режима загрузки: традиционная холодная загрузка, выход из гибернации и быстрый запуск, введённый в Windows 8. При холодной загрузке загрузчик загружает ядро в память и связывает его, а ядро настраивает базовую функциональность, перечисляет подключённые устройства и загружает драйверы. Быстрый запуск вместо этого читает уже инициализированное состояние обратно из файла гибернации.5

Подготовка к обратному чтению происходит при предыдущем завершении работы. До закрытия приложений и выхода всех пользователей это то же самое, что полное завершение работы. Затем пути расходятся.51

Этап Полное завершение работы Гибридное завершение работы
Приложения и пользовательские сеансы Закрыть приложения и выйти из всех пользователей То же
Сеанс ядра Закрыт Не закрыт; гибернирован
Обработка перед отключением питания Завершить систему Отправить драйверам IRP питания для подготовки к гибернации и сохранить образ памяти, включая драйверы режима ядра, в hiberfil.sys
При следующем включении Инициализировать ядро, драйверы и так далее Прочитать сохранённое состояние обратно и продолжить

Что получают драйверы, тоже не уведомление о завершении работы, а IRP питания, объявляющий переход в гибернацию. Хотя для пользователя это выглядит как отключение питания, сердцевина Windows не завершается; она сохраняется до следующей загрузки.5

2.2 Что сохраняется и что закрывается

Граница лежит между пользовательскими сеансами (интерактивные сеансы, Session 1 и далее) и сеансом ядра (Session 0).62

Элемент Обработка при гибридном завершении работы
Открытые приложения, состояние входа Завершаются, когда пользовательский сеанс выходит
Службы на пользователя Останавливаются и удаляются при выходе
Ядро и загруженные драйверы режима ядра Состояние сохраняется в файл гибернации и восстанавливается при следующей загрузке
Системные службы Session 0 Не останавливаются и не перезапускаются; гибернируются и восстанавливаются с сохранённым состоянием

Службы на пользователя и службы Session 0 обе «службы», но обрабатываются по-разному. Первые создаются при входе и останавливаются и удаляются при выходе, поэтому не переносятся.7

На сохранённой стороне, напротив, остаются внутреннее состояние драйверов и хендлы, память и внутренние кэши системных служб. Аппаратная документация Microsoft также объясняет, что поскольку ядро, драйверы и службы сохраняются и восстанавливаются, а не перезапускаются, время работы между перезапусками ядра может быть дольше, чем в прежних версиях Windows, и просит следить за утечками памяти в драйверах и службах.2

2.3 Чем это отличается от обычной гибернации

Обычная гибернация сохраняет всю память, включая пользовательские сеансы. Быстрый запуск сначала выводит пользователей, затем сохраняет. Поэтому файл гибернации меньше, и и запись, и обратное чтение быстрее.26

В терминах состояний питания полное завершение работы — S5, гибернация — S4. Гибридное завершение работы выглядит как S5 для пользователя, но на самом деле проходит через S4. Однако реакция на сигналы пробуждения устройств обрабатывается так, как если бы система была в S5. Хотя это то же S4, не всё ведёт себя так же, как в обычной гибернации, и это различие важно для Wake on LAN в 4.4.6

2.4 Следующая загрузка «возобновляет», а не «инициализирует»

Загрузка из быстрого запуска идёт в таком порядке: инициализация прошивки, чтение файла гибернации, возобновление устройств, возобновление Winlogon и инициализация Explorer. Файл гибернации хранит системный контекст, записанный при завершении работы.8

Здесь важно, что устройства возобновляются, а не инициализируются. Если драйвер внутри держал плохое состояние, например периферия не распознавалась или USB-устройство не отвечало после возобновления, это состояние тоже может перенестись.

«Перезагрузка» не использует этот путь сохранения и восстановления; она всегда идёт через полную загрузку. Причина, по которой после установки драйвера или после обновления компонентов Windows, которые нельзя заменить без полной перезагрузки, требуется перезагрузка, как раз в том, чтобы заново построить состояние на стороне Windows.1

3. Сброс или полное завершение работы без смены настроек

3.1 Чтобы сбросить и продолжить пользоваться ПК: «Перезагрузка»

Чтобы изолировать проблему или один раз вернуть Windows в чистое состояние, выберите «Перезагрузка» в меню питания. Поскольку это не зависит от настройки быстрого запуска, это также надёжная операция для процедур.1

Заметьте, однако, что перезагрузка — полный цикл загрузки, а не операция, которая оставляет ПК выключенным (S5). Когда Windows нужно полностью завершить и отключить питание, например перед работой с диском из другой ОС, используйте следующий способ.

3.2 Чтобы также отключить питание: shutdown /s /t 0

Сохраните работу, затем выполните следующую команду.

shutdown /s /t 0

/s у Shutdown.exe по умолчанию — полное завершение работы. Сочетайте /hybrid с /s только когда хотите гибридное завершение. У «Завершения работы» в меню питания и у /s команды разное поведение по умолчанию.19

В последовательности завершения работы аппаратного ПК или в пакетном файле эта команда делает намерение «полностью завершить и отключить питание» однозначным. Заметьте, что /g полностью завершает работу, затем перезагружает, возобновляя зарегистрированные приложения, если включён Automatic Restart Sign-On (ARSO); это не параметр, чтобы остаться выключенным.9

3.3 Способ с клавишей Shift и вызов из приложения

Выбор «Завершение работы» с удерживаемой клавишей Shift выполняет полное завершение работы только на этот раз. Однако эта процедура описана в ответе поддержки на Microsoft Q&A, а не в официальном справочнике. Если используете её в эксплуатации, проверяйте результат по времени работы или событию 27 из главы 5; для процедур, обращённых к пользователям, «Перезагрузка» или shutdown /s /t 0 надёжнее.10

Приложение также может выполнить полное завершение работы через API, например вызвав InitiateSystemShutdownEx с bRebootAfterShutdown, равным FALSE. Флаги каждого API, разница между отключением питания и перезагрузкой и требуемая привилегия собраны в главе 7.11

4. Изоляция причины по симптому

Механизм, описанный до сих пор, объясняет время работы и перенесённые проблемы. Но не предполагайте, что симптом перед вами вызван быстрым запуском. Wake on LAN в особенности нужно изолировать как отдельное ограничение.

4.1 Завершение работы не помогает, а перезагрузка помогает

Первое, что сделать, — проверить, воспроизводится ли проблема после перезагрузки. Если она исчезает после перезагрузки, гипотеза, что причина — состояние, перенесённое в драйвере или службе, становится сильной.

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

  1. Несколько раз подтвердите, что «после завершения работы воспроизводится, после перезагрузки нет».
  2. Подтвердите событием Kernel-Boot 27 из главы 5, что последняя загрузка была быстрым запуском (0x1).
  3. Сверьте с записями на стороне драйверов в диспетчере устройств и системном журнале.

Даже после подтверждения не нужно сразу менять настройку на каждой машине. В большинстве случаев достаточно поправить процедуру с «выключить и включить» на «перезагрузить». Нужна ли машине гарантированная инициализация при каждом завершении работы, решается в главе 6.

Когда само завершение работы не удаётся и возвращает на экран блокировки, нужна другая проверка. Завершение работы при включённом быстром запуске выполняется как гибернация и по ходу инициализирует конфигурацию дампа памяти. Если драйвер фильтра дампа не удаётся загрузить, гибернация не удаётся, записывается событие 45, и система возвращается на экран блокировки. Место, на которое указывает Microsoft, — DumpFilters в HKLM\SYSTEM\CurrentControlSet\Control\CrashControl. Считать этот симптом «сбоем гибернации», а не «сбоем завершения работы», проясняет, куда смотреть.1

4.2 Время работы не сбрасывается, хотя каждую ночь завершаете работу

В «Производительности» > «ЦП» диспетчера задач иногда видно время работы в много дней. При гибридном завершении ядро только гибернируется и восстанавливается, поэтому время загрузки ядра не обновляется.2

В WMI время работы получают из Win32_OperatingSystem.LastBootUpTime, вычитая время загрузки из текущего времени. Перезагрузка, которая идёт через полную загрузку, и загрузка после полного завершения работы обновляют это опорное время загрузки.12

Get-Uptime в PowerShell 6 и новее использует счётчик тиков таймера высокого разрешения с момента старта системы. Поэтому его значение может немного отличаться от выведенного из WMI, но оно то же в том, что берёт загрузку ядра как опору.13

Не заключайте ни поломку, ни быстрый запуск по одному длинному времени работы. Время работы также сохраняется при сне, явной гибернации и незавершённом завершении работы. Прежде чем объяснять, проверьте событие 27 и соседние записи журнала.

Кроме того, мониторинг вроде «предлагать перезагрузку, когда время работы превышает 30 дней» будет предупреждать пользователей, которые выключаются каждый день. Мониторинг не ошибается. Формулировка уведомления «пожалуйста, перезагрузите» избегает путаницы «но я же завершил работу прошлой ночью».

4.3 Обновления не заканчиваются даже после «Обновить и завершить работу»

Чтобы закончить обновление, выбирайте «Обновить и перезагрузить». Справочная статья Microsoft (KB4011287) объясняет, что некоторые обновления могут завершиться только в загрузке после полного завершения работы и могут остаться отложенными, когда загрузка идёт через гибернацию быстрого запуска. Этого поведения нет при перезагрузке.3

Когда на следующее утро после «Обновить и завершить работу» снова появляется «Обновление», это обычно не сбой обновления; обработка, которая ждала полной загрузки, просто идёт в этой загрузке. Если быстрый запуск отключён, «Обновить и завершить работу» тоже идёт через полную загрузку, поэтому предпосылка меняется.

Та же справочная статья также отмечает, что задержка завершения обновлений в средах под Configuration Manager была устранена в Configuration Manager 2002 и Windows 10 21H1.3

4.4 Wake on LAN не может разбудить ПК, который был выключен

Одного отключения быстрого запуска недостаточно, чтобы решить эту проблему. В Windows 10/11 Wake on LAN (WOL) с точки зрения Windows не поддерживается ни из гибридного завершения работы, ни из полного завершения работы (S5).414

Состояние ожидания Обработка WOL с точки зрения Windows
Традиционный сон (S3) Поддерживаемый путь. Зависит, однако, от NIC и настроек пробуждения
Гибернация (S4), явно выбранная пользователем Поддерживаемый путь. Зависит, однако, от NIC и настроек пробуждения
Гибридное завершение работы (на самом деле S4) NIC не готовится к пробуждению; не поддерживается
Полное завершение работы (S5) Не поддерживается
Modern Standby (S0 low-power idle) Сеть может быть источником пробуждения, но нужно проверить модель и условия питания

Хотя оба — S4, Windows обрабатывает «Гибернацию» и «Завершение работы» по-разному. По объяснению Microsoft, пользователь, который приказывает завершить работу, ожидает нулевого потребления, поэтому Windows не готовит NIC к пробуждению на переходе к гибридному завершению. Это отключение не выполняется на переходе к явной гибернации.4

В Windows 7 WOL из полного завершения работы по умолчанию (S5) тоже официально не поддерживался. Были, однако, модели, на которых NIC оставался готовым к пробуждению, если остаточное питание было доступно. Разница с гибридным завершением по умолчанию в Windows 10 в том, что Windows явно отключает пробуждение.4

Машины Modern Standby нельзя обобщать как «они всегда просыпаются, пока спят». У модели, которая в powercfg /a показывает «S0 Low Power Idle», нет S3. В Modern Standby система продолжает работать на низкой мощности даже с выключенным экраном, а Wi-Fi, Ethernet и мобильный широкополосный доступ поддерживают соединения и могут быть источниками пробуждения. Документация Microsoft также указывает, что Remote Desktop и общий доступ к файлам могут разбудить SoC по Ethernet.15

Та же документация, однако, также перечисляет следующие условия.15

  • В отключённом ожидании приложения не могут пользоваться сетью, а от батареи стек сети может начать отключаться.
  • Проводная LAN не считается способной к Modern Standby, если не поддерживает выгрузку сопоставления шаблонов.
  • В Windows 11 версии 24H2 и новее многие источники пробуждения отключаются, когда обнаруживается чрезмерный расход батареи.

На Surface WOL во время Modern Standby указан как работающий по умолчанию начиная с Windows 10 версии 1607, но это не гарантия для ноутбуков других производителей. Можно ли ПК реально разбудить, определяют NIC, прошивка, условия питания AC/DC и реализация OEM, поэтому проверьте на реальной машине, прежде чем встраивать в необслуживаемую эксплуатацию вроде ночных заданий.16

Есть также модели, чья прошивка и аппаратура могут сами готовить NIC к пробуждению из S4/S5. В этом случае Windows не участвует. «Некоторые модели просыпаются из завершения работы» относится к этому исключению.4

В эксплуатации базовый подход — оставлять машину, которую хотите будить, ожидающей в «Сне» или «Гибернации». Даже если настройки NIC вроде «Wake on Magic Packet» заданы правильно, ПК не проснётся, если переход питания ОС отключил пробуждение. Как драйверы отличают одно от другого, объясняется в 7.5. См. также «Спящий режим, гибернация и Modern Standby: как не дать долгоживущему приложению остановиться ночью» о поведении Modern Standby и «Расширенные настройки NIC в Windows: RSS, LSO, EEE и Wake on LAN» о настройках NIC.

4.5 Dual boot или работа с тем же диском из другой ОС

Этот раздел — предостережение, выведенное из механизма, на основе первичных источников о состояниях питания. При гибридном завершении работы образ памяти ядра сохраняется и восстанавливается при следующей загрузке.6

Отложенные записи фиксируются на диск в момент входа в гибернацию, но кэши драйвера файловой системы и его предположения о структуре тома остаются в файле гибернации. Если другая ОС (Linux, Windows PE и так далее) тем временем пишет в тот же том NTFS, устаревший вид, который Windows восстанавливает при следующей загрузке, не совпадёт с тем, что реально на диске.

Опасность не в самой гибернации, а в том, что Windows восстанавливает старое состояние после того, как другая ОС изменила диск. Когда драйвер NTFS на стороне Linux отказывается писать в гибернированный том или монтирует его только для чтения, это правильное поведение, призванное предотвратить именно эту несогласованность.

На машине, которая работает с одним диском из нескольких ОС, или на тестовой машине, которая загружает отдельную ОС для ремонта, встройте в эксплуатацию одно из следующего.

  • Отключите быстрый запуск и также отключите явную гибернацию через powercfg /h off.
  • Потребуйте полное завершение работы из главы 3 перед сменой операционных систем.

Одного отключения быстрого запуска недостаточно: явная гибернация остаётся. Учитывайте, что запись из другой ОС, пока Windows гибернирована, даёт ту же несогласованность.

4.6 Изменения настроек прошивки или конфигурации устройств не вступают в силу

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

Microsoft просит, чтобы драйверы, которые настраивают устройство по-разному при холодной загрузке и при выходе из гибернации, после быстрого запуска настраивали его как при холодной загрузке. В драйверах, реализованных не так, проблемой становится путь возобновления. Как драйвер отличает одно от другого, собрано в 7.5.5

5. Проверяйте «настройку» и «фактический путь загрузки» отдельно

Даже когда быстрый запуск включён в настройках, последняя загрузка не обязательно шла этим путём. Читайте сведения, которые говорят о настройке, и сведения, которые говорят о результате загрузки, отдельно.

5.1 Четыре места проверки

Где проверять Что это говорит Оговорка
Время работы в диспетчере задач Накапливалось ли время с загрузки ядра Первая подсказка. Оно также продолжается при сне, гибернации и неудачном завершении работы, поэтому не заключайте по нему одному
Kernel-Boot, событие 27 в системном журнале Тип последней загрузки Сверьте с временем работы, чтобы подтвердить фактический путь
powercfg /a Доступные состояния питания; есть ли файл гибернации и какого он типа При уменьшенном файле гибернации быстрый запуск доступен, хотя обычная гибернация нет
Локальный и политический HiberbootEnabled Настройка быстрого запуска Значение политики 0 не значит «принудительно отключено»

Как думать о времени работы, разобрано в 4.2, а связь файла гибернации и настройки также объясняется в 6.3 и 6.4.261718

5.2 Как читать событие 27

Kernel-Boot событие 27 при загрузке записывает значение вроде «The boot type was 0x1». Смысл значения не документирован в официальном справочнике, но следующее соответствие широко известно.

Значение Тип загрузки
0x0 Полная загрузка
0x1 Быстрый запуск
0x2 Выход из гибернации

Даже если время работы продолжается, последнее значение 0x2 значит выход из обычной гибернации, а не быстрый запуск. Не объясняйте по одному времени работы; сочетайте его с событием 27.

5.3 Проверка всего сразу через PowerShell

Следующий скрипт показывает настройку, файл гибернации, время работы и тип последних пяти загрузок вместе. Большинство чтений реестра и журнала событий работают без прав администратора, но powercfg /a в некоторых средах требует прав администратора.

# Показать настройку быстрого запуска и тип недавних загрузок вместе
$powerKey  = 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power'
$policyKey = 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\System'

$local  = Get-ItemProperty -Path $powerKey  -Name HiberbootEnabled -ErrorAction SilentlyContinue
$policy = Get-ItemProperty -Path $policyKey -Name HiberbootEnabled -ErrorAction SilentlyContinue
$os     = Get-CimInstance -ClassName Win32_OperatingSystem
$hiberfil = Test-Path -LiteralPath "$env:SystemDrive\hiberfil.sys"

# Без файла гибернации (powercfg /h off) быстрый запуск не работает независимо от значения реестра.
# Политика «Требовать использование быстрого запуска» имеет приоритет над локальной настройкой только когда включена (1).
# Если значение политики 0 или не задано, используется локальная настройка (нет значения — по умолчанию включено)
$effective =
    if (-not $hiberfil) { 'Недоступно (нет файла гибернации: состояние powercfg /h off)' }
    elseif ($null -ne $policy -and $policy.HiberbootEnabled -eq 1) { 'Включено (принудительно политикой)' }
    elseif ($null -eq $local -or $local.HiberbootEnabled -eq 1) { 'Включено (локальная настройка)' }
    else { 'Отключено (локальная настройка)' }

[pscustomobject]@{
    LocalHiberbootEnabled  = if ($null -eq $local)  { '(нет значения: по умолчанию включено)' } else { $local.HiberbootEnabled }
    PolicyHiberbootEnabled = if ($null -eq $policy) { '(не задано)' } else { $policy.HiberbootEnabled }
    EffectiveSetting       = $effective
    HiberfilExists         = $hiberfil
    LastBootUpTime         = $os.LastBootUpTime
    Uptime                 = (Get-Date) - $os.LastBootUpTime
} | Format-List

# Тип последних пяти загрузок (0x0 = полная загрузка, 0x1 = быстрый запуск, 0x2 = выход из гибернации)
Get-WinEvent -FilterHashtable @{ LogName = 'System'; ProviderName = 'Microsoft-Windows-Kernel-Boot'; Id = 27 } -MaxEvents 5 |
    Select-Object TimeCreated, Message

# Доступные состояния сна и тип файла гибернации
powercfg /a

Действующая настройка, показанная здесь, решается в таком порядке: есть ли файл гибернации, принуждает ли политика включение и какова локальная настройка. Если значение политики 0 или не задано, используется локальная настройка, а без файла гибернации быстрый запуск недоступен при любых значениях настройки.

5.4 «Кто запросил завершение работы» — в другом журнале

Событие 1074 (User32) в системном журнале записывает запрашивающий процесс, пользователя и код причины, а также запрошенную операцию (отключение питания, перезагрузка и так далее). Однако поскольку и гибридное, и полное завершение работы записываются как отключение питания, одного 1074 недостаточно, чтобы отличить их. Подтверждайте фактический путь событием 27 при следующей загрузке.

Неожиданные остановки изолируют от последовательности событиями 41 (Kernel-Power) и 6008 (EventLog).19 Процедура поиска «аппаратный ПК к утру остановился» разобрана в «Завершение работы Windows со стороны приложения — уведомления, перезагрузка и отключение питания».

6. Решение, отключать ли быстрый запуск, и как

6.1 Решайте по роли машины, а не повсеместно

Microsoft включает быстрый запуск по умолчанию и не рекомендует его отключать. У него есть выигрыш во времени загрузки, и аппаратная документация считает чтение и запись файла гибернации обработкой, достаточно важной, чтобы занимать около 50% времени загрузки. На обычном ноутбуке нет причин отключать его повсеместно.12

Две оси решения — «предполагает ли эксплуатация, что отключение питания инициализирует машину?» и «будет ли другая ОС менять тот же том?» Эти две независимы. Не останавливайтесь на «отключили, потому что это аппаратный ПК»; также проверьте, пишет ли другая ОС на диск.

Роль машины или цель Рекомендуемый ответ Причина
Аппаратный ПК или измерительный ПК, где инициализация отключением питания — эксплуатационное предположение Отключить Где процедуру нельзя сменить на «перезагрузку», гарантируйте инициализацию через настройку
Тестовая машина или машина, которая работает с одним диском из нескольких ОС Кроме отключения также отключите гибернацию или потребуйте полное завершение работы перед сменой ОС Одной остановки быстрого запуска недостаточно: остаётся несогласованность от явной гибернации (4.5)
Машина, которую будить ночью через WOL Пересмотреть состояние ожидания, а не настройку Даже когда выключено, WOL из S5 не поддерживается. Машины Modern Standby нужно проверять на реальной машине (4.4)
Машина с маленьким накопителем Рассмотреть уменьшенный файл гибернации Уменьшает файл гибернации, сохраняя быстрый запуск (6.4)
Обычный рабочий ноутбук Оставить включённым и перезагружать, когда нужно Сохраняет быструю загрузку, а изоляцию можно сделать перезагрузкой
Всегда включённая, сервероподобная машина, которую никогда не выключают Любой вариант годится Если её никогда не выключают, настройка не действует, а перезагрузка всегда полная

6.2 Смена на одной машине: панель управления

И в Windows 10, и в 11 место смены — панель управления, а не приложение «Параметры».4

  1. Откройте «Электропитание» и выберите «Действие кнопок питания».
  2. Если пункты серые, нажмите «Изменение параметров, которые сейчас недоступны» (нужны права администратора).
  3. Снимите флажок «Включить быстрый запуск (рекомендуется)».
  4. Сохраните изменения.

Если самого пункта нет, гибернация отключена и файла гибернации нет. См. объяснение powercfg /a и файла гибернации в 6.4.

6.3 Настройка многих машин: различайте реестр и политику

Локальная настройка — HiberbootEnabled (DWORD) в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Power. 0 отключает, 1 включает, и флажок панели управления читает и пишет это же значение.17

# Запускайте в PowerShell от имени администратора. Отключает быстрый запуск
$powerKey = 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power'
Set-ItemProperty -Path $powerKey -Name HiberbootEnabled -Type DWord -Value 0

# Прочитайте значение обратно для проверки
(Get-ItemProperty -Path $powerKey -Name HiberbootEnabled).HiberbootEnabled

Однако если политика «Требовать использование быстрого запуска» включена, политика имеет приоритет над локальным значением. Даже если выставите локальное значение в 0 и прочитаете обратно 0, быстрый запуск останется включённым. В этом случае сначала верните политику в «Отключено» или «Не задано».18

Состояние политики Результат
Включено Требует быстрый запуск и требует, чтобы гибернация была включена. Имеет приоритет над локальной настройкой
Отключено или не задано Используется локальный HiberbootEnabled. Не принуждает быстрый запуск выключить

Эта политика в WinInit.admx в «Конфигурация компьютера > Административные шаблоны > Система > Завершение работы». Она пишет в HiberbootEnabled в HKLM\SOFTWARE\Policies\Microsoft\Windows\System. В Intune её можно настроить как Policy CSP ADMX_WinInit/Hiberboot.18

Чтобы повсеместно развернуть выкл., распространяйте локальный HiberbootEnabled = 0 через предпочтения групповой политики или конфигурацию Intune. Включайте эту политику, когда хотите принудительно вкл., чтобы пользователи не могли отключить.

Три слоя настройки быстрого запускаЕсли политика «Требовать использование быстрого запуска» включена, быстрый запуск включён с приоритетом над локальной настройкой; если не задана, используется локальный HiberbootEnabled. На любом пути быстрый запуск недоступен, если нет файла гибернацииВключеноОтключено или не задано1 (по умолчанию)0Да (полный или уменьшенный)Нет (powercfg /h off)Политика: требовать использование быстрого запускаПринудительно вкл. (локальная настройка игнорируется)Локально: HiberbootEnabledВключеноОтключеноФайл гибернации (hiberfil.sys) есть?Быстрый запуск работаетБыстрый запуск недоступен

Рис. 2: Политика — настройка, которая принуждает включение. Отключение распространяют через локальное значение реестра, и на любом пути без файла гибернации быстрый запуск недоступен.

Смена вступает в силу со следующего завершения работы. Чтобы проверить, выполните обычное «Завершение работы», включите питание и проверьте, что событие 27 равно 0x0. Перезагрузка — полная загрузка независимо от настройки, поэтому ею нельзя проверить отключение. Обратное чтение реестра подтверждает значение настройки; событие 27 подтверждает фактический путь.

6.4 powercfg /h off — не то же самое, что «отключить только быстрый запуск»

Быстрый запуск опирается на файл гибернации hiberfil.sys. powercfg /hibernate off (powercfg /h off) — операция, которая удаляет этот файл гибернации. Недоступными становятся не только быстрый запуск, но и обычная гибернация и гибридный сон.206

Настройка HiberbootEnabled = 0, напротив, оставляет файл гибернации на месте. Меняйте нужную цель под каждую задачу.

Цель Настройка или команда Что остаётся и что теряется
Остановить только быстрый запуск HiberbootEnabled = 0 Файл гибернации остаётся. Если он полного типа, обычная гибернация тоже остаётся
Уменьшить файл, сохранив быстрый запуск powercfg /h /type reduced Уменьшенный файл гибернации (по умолчанию 20% физической памяти). Обычная гибернация и гибридный сон недоступны
Вернуться к типу, который также позволяет обычную гибернацию powercfg /h /type full Полный файл гибернации (по умолчанию 40% физической памяти). Не рекомендуется на машинах с накопителем меньше 32 ГБ
Обойтись без гибернации вовсе powercfg /h off Удаляет файл гибернации. Быстрый запуск, гибернация и гибридный сон все становятся недоступны

Полный файл гибернации поддерживает гибернацию, гибридный сон и быстрый запуск. Гибридный сон, однако, требует S3, поэтому на машине Modern Standby без S3 его нельзя использовать даже с полным файлом гибернации. Уменьшенный файл гибернации поддерживает только быстрый запуск. На ПК, который уже был уменьшенного типа, отключение только быстрого запуска не делает обычную гибернацию или гибридный сон доступными.6

Читайте вывод powercfg /a с этим различием тоже.

Файл гибернации Что показано об обычной гибернации Быстрый запуск
Полный Доступна Доступен
Уменьшенный «Гибернация не поддерживается» Доступен
Нет «Гибернация не включена» Недоступен

Если /type reduced не удаётся с «The parameter is incorrect», это потому, что размер файла гибернации вручную задан больше 40%. Сначала выполните powercfg /h /size 0, чтобы вернуть размер под управление ОС, затем выполните снова.621

На машине, где другая ОС меняет тот же том, оставшаяся обычная гибернация даёт ту же несогласованность, что в 4.5. Не останавливайтесь на отключении быстрого запуска; также отключите гибернацию или потребуйте полное завершение работы перед сменой ОС.

7. Для разработчиков: API завершения работы и оговорки служб

7.1 API задаёт «какую операцию», а не только «гибридное или нет»

У API завершения работы, вызываемых из приложения, поведение по умолчанию отличается от меню питания. По документации Microsoft InitiateSystemShutdownEx и InitiateSystemShutdown никогда не становятся гибридными, а InitiateShutdown и ExitWindowsEx запрашивают гибрид явным флагом.26

API Полное завершение работы с отключением питания Завершение работы для быстрого запуска
InitiateSystemShutdownEx / InitiateSystemShutdown bRebootAfterShutdown = FALSE Никогда не гибридное
InitiateShutdown Задать SHUTDOWN_POWEROFF без SHUTDOWN_HYBRID Сочетать SHUTDOWN_POWEROFF с SHUTDOWN_HYBRID
ExitWindowsEx Задать EWX_POWEROFF без EWX_HYBRID_SHUTDOWN Сочетать EWX_SHUTDOWN с EWX_HYBRID_SHUTDOWN

SHUTDOWN_HYBRID не задают отдельно; его сочетают с одним или несколькими флагами из той же таблицы. Из них сочетание, которое даёт отключение питания для быстрого запуска, — с SHUTDOWN_POWEROFF. EWX_HYBRID_SHUTDOWN также не используют отдельно, а сочетают с EWX_SHUTDOWN.2223

Одного снятия гибридного флага недостаточно, чтобы определить операцию. Нужны также следующие различия.112223

Аргумент или флаг Выполняемая операция
bRebootAfterShutdown = TRUE, SHUTDOWN_RESTART, EWX_REBOOT Перезагрузка
SHUTDOWN_NOREBOOT Останавливает систему, но не отключает питание
EWX_SHUTDOWN Останавливает систему до точки, где питание можно безопасно отключить, но не отключает питание
ExitWindowsEx с uFlags = 0 EWX_LOGOFF, то есть выход из системы

Если реализуете кнопку «выключить» на киоске или аппаратном ПК, вызовите InitiateSystemShutdownEx с bRebootAfterShutdown = FALSE или ExitWindowsEx с EWX_POWEROFF и не добавляйте гибридный флаг. Важно сохранить требуемое указание отключения питания, а не «без флагов».

7.2 Перед вызовом включите привилегию на нужном токене

С любым из этих API для завершения работы локального ПК требуется, чтобы привилегия SE_SHUTDOWN_NAME была заранее включена через AdjustTokenPrivileges. По умолчанию вошедший пользователь может включить эту привилегию, но если вызвать, пока она выключена, API не удаётся и завершение работы не начинается.1123

Токен, на котором её включать, различается по API.

API Токен, на котором включать привилегию
ExitWindowsEx Токен вызывающего процесса. Откройте его через OpenProcessToken
InitiateSystemShutdown(Ex) / InitiateShutdown Действующий токен вызывающего потока. Токен потока при олицетворении; иначе токен процесса

У обычного настольного или киоскового приложения, которое не олицетворяет, токена потока нет. OpenThreadToken не удаётся с ERROR_NO_TOKEN, поэтому убедитесь, что код не переходит к вызову с выключенной привилегией.

7.3 Чтобы вести себя как меню питания, читайте действующую настройку

EWX_HYBRID_SHUTDOWN — флаг, который «запрашивает быстрый запуск», а не «следует настройке этого ПК».23

Если быстрый запуск отключён, но файл гибернации на ПК остаётся, запрос с этим флагом значит, что приложение обходит настройку пользователя. Утилита, которая уважает настройку, должна проверять политику, локальный HiberbootEnabled и наличие файла гибернации по тем же правилам, что скрипт в 5.3.

Сочетайте EWX_SHUTDOWN с EWX_HYBRID_SHUTDOWN только когда действующая настройка включена; иначе выбирайте полное завершение работы с отключением питания. Подтверждайте результат событием 27 при следующей загрузке.

7.4 Службы должны обрабатывать события питания, а не только уведомления об остановке

При гибридном завершении работы приложения в пользовательском сеансе закрываются, а службы Session 0 гибернируются и восстанавливаются. Службы на пользователя останавливаются и удаляются при выходе, поэтому здесь держите их раздельно.27

При входе в гибернацию сначала уведомляются приложения и службы, затем драйверы. Важно, что при возобновлении драйверы и службы не запускаются заново; они возвращаются в состояние, в котором были до гибернации.6

Документация Microsoft для средств оценки объясняет, что уведомления о приостановке отправляются последовательно службам, которые объявили SERVICE_ACCEPT_POWEREVENT, что на каждую службу действует тайм-аут 30 секунд и что с точки зрения службы быстрый запуск — то же, что гибернация.24

Если служба гибернируется, держа соединение с устройством, а устройство тем временем обесточено, восстановленное на следующее утро соединение уже непригодно. Если всю очистку оставить уведомлению об остановке, этот путь не обрабатывается.

Путь Требуемое объявление приёма Как обрабатывается служба
Перезагрузка или полное завершение работы SERVICE_ACCEPT_SHUTDOWN / SERVICE_ACCEPT_PRESHUTDOWN Получает соответствующее уведомление об остановке и завершается
Гибридное завершение работы или гибернация SERVICE_ACCEPT_POWEREVENT Получает события питания и гибернируется и восстанавливается с сохранённым состоянием

Уведомления об остановке — SERVICE_CONTROL_SHUTDOWN / SERVICE_CONTROL_PRESHUTDOWN. Эта обработка нужна для перезагрузки и полного завершения работы, поэтому не убирайте её. Оставьте её и дополнительно выполняйте очистку и повторное подключение на событиях питания перехода ко сну или гибернации и выхода из них.25

Ни одно уведомление не доставляется, кроме как службам, которые сделали соответствующее объявление приёма. Без объявления служба при остановке завершается без уведомления, а при гибридном завершении гибернируется и восстанавливается без уведомления. Что снова запускается при загрузке после полного завершения работы — службы с типом запуска «Автоматически». Службы «Вручную» и «Отключена» не возвращаются без зависимости, триггера или явного запуска. Как на практике получать события питания, разобрано в «Приложение ломается после спящего режима — события питания Windows и устойчивое восстановление».24

7.5 Драйверы могут отличить быстрый запуск от обычного выхода из гибернации

Драйверы могут отличить одно от другого через SYSTEM_POWER_STATE_CONTEXT, входящий в системный IRP set-power.5

Путь TargetSystemState EffectiveSystemState
Быстрый запуск PowerSystemShutdown PowerSystemHibernate
Выход из обычной гибернации PowerSystemHibernate PowerSystemHibernate

Системный драйвер NDIS использует это различие: он отключает способность минипорта к пробуждению для быстрого запуска и не отключает её для выхода из обычной гибернации. Это причина, объяснённая в 4.4, почему WOL обрабатывается по-разному, хотя оба — S4.5

Указание Microsoft также в том, что драйверы, которые настраивают устройство по-разному при холодной загрузке и при выходе из гибернации, после быстрого запуска должны настраивать его как при холодной загрузке.5

8. Как отразить это в процедурах и мониторинге

Когда механизм понят, выровняйте операции и формулировки, которые используют на площадке.

Эксплуатационная ситуация Что писать в процедуре или уведомлении
Изоляция проблемы первой линии «Перезагрузка», а не «выключить и включить»
Когда превышен порог времени работы «Пожалуйста, перезагрузите». Объясните, почему предупреждение появляется даже у пользователей, которые завершают работу каждый день
Когда завершать обновления Сделайте «Обновить и перезагрузить» стандартом
Когда отключение — стандартная конфигурация аппаратных ПК Внесите настройку реестра из 6.3 в подготовку и при приёмке проверяйте загрузку после обычного завершения работы методом главы 5

Явно писать «перезагрузка» также важно, чтобы на площадке не выключали питание долгим нажатием кнопки. Мониторинг по времени работы можно использовать как есть. На машине с быстрым запуском он правильно обнаруживает, что ядро не перезапускалось.

Даже когда перезагрузка устраняет проблему, прежде чем отражать это в процедурах или настройках, получите проверку воспроизведения и подтверждение журналами из 4.1. Если перезагрузка не помогает, ищите причины помимо быстрого запуска. См. также «Завершение работы Windows со стороны приложения — уведомления, перезагрузка и отключение питания» о связи обновлений и приложений аппаратных ПК.3

9. Итог

Главное, что нужно помнить: «завершение работы» при включённом быстром запуске — отключение питания с точки зрения пользователя, а не операция, которая заново строит всё состояние Windows. Приложения и пользовательский сеанс закрываются, но ядро, драйверы и службы Session 0 сохраняются и восстанавливаются.52

На ПК с отключённым быстрым запуском или без файла гибернации обычное «Завершение работы» также закрывает сеанс ядра и входит в S5.

Чтобы сбросить один раз, выбирайте Перезагрузку; чтобы полностью завершить и также отключить питание — shutdown /s /t 0. Не заключайте причину только потому, что перезагрузка помогла; подтверждайте проверкой воспроизведения, событием 27 и соседними журналами.19

Отключать ли быстрый запуск, решают предполагает ли машина инициализацию и меняет ли другая ОС тот же том. Для последнего нужны также меры против явной гибернации. Если цель — WOL, пересмотрите состояние ожидания, а не переключайте настройку.17204

Похожие статьи

Смежные области консультирования

KomuraSoft LLC занимается проектированием стандартов подготовки, которые включают операции питания аппаратных ПК и киосков (завершение работы, сон, гибернация и Wake on LAN), расследованием первопричин проблем долгоживущих приложений вроде «помогает только перезагрузка» и «к утру остановилось», и ревью проектирования обработки событий питания в службах Windows и резидентных приложениях. Можно начать с одного случая вроде «время работы не падает, хотя каждую ночь завершаем работу».

Справочные ссылки

  1. Microsoft Learn, Fast startup causes hibernation or shutdown to fail in Windows 10 or Windows 8.1. О том, что быстрый запуск гибернирует сеанс ядра вместо того, чтобы закрыть его, и сохраняет сеанс ядра и драйверы устройств в hiberfil.sys; о том, что перезагрузка выполняет полный цикл загрузки; о том, что настройка быстрого запуска не применяется к перезагрузкам; о том, что он включён по умолчанию и отключение не рекомендуется; о том, что Shutdown /s /t 0 по умолчанию — полное завершение работы, а /hybrid делает его гибридным; и о возврате на экран блокировки с событием 45, когда при гибернации не удаётся инициализировать конфигурацию дампа памяти, с DumpFilters как местом проверки.  2 3 4 5 6 7 8 9 10 11

  2. Microsoft Learn, Delivering a great startup and shutdown experience. О том, что сценарий завершения работы и перезагрузки по умолчанию начиная с Windows 8.x назван fast startup, выводит все пользовательские сеансы («session 1» в терминологии документа) и записывает остальное в файл гибернации; о загрузке инициализированного состояния из файла гибернации вместо полной загрузки; о том, что ядро, драйверы и службы при завершении работы по инициативе пользователя сохраняются и восстанавливаются, а не перезапускаются, поэтому время работы между перезапусками ядра может быть значительно дольше, чем раньше; о необходимости следить за утечками памяти в драйверах и службах; о том, что чтение и запись файла гибернации занимают около 50% времени загрузки; и о таблице поведения API завершения работы (InitiateSystemShutdownEx и InitiateSystemShutdown всегда полное завершение, InitiateShutdown с SHUTDOWN_HYBRID и ExitWindowsEx с EWX_HYBRID_SHUTDOWN для завершения работы быстрого запуска).  2 3 4 5 6 7 8 9 10

  3. Microsoft Learn, Updates may not be installed with Fast Startup in Windows 10. О том, что обновления иногда не устанавливаются после завершения работы при включённом быстром запуске, чего нет при перезагрузке; о том, что некоторые обновления завершаются только в загрузке после полного завершения работы; о выборе «Перезагрузка» в меню питания для завершения отложенных обновлений; и о том, что задержка в средах Configuration Manager устранена в Configuration Manager 2002 и Windows 10 21H1.  2 3 4

  4. Microsoft Learn, Wake on LAN (WOL) behavior in Windows 10. О том, что завершение работы по умолчанию в Windows 7 было S5, а WOL из S5 официально не поддерживался, хотя некоторые модели просыпались на остаточном питании; о том, что завершение работы по умолчанию в Windows 10 — гибридное (S4), WOL из S4 и S5 не поддерживается и сетевой адаптер явно не готовится к пробуждению; о том, что WOL поддерживается только из сна (S3) или гибернации (S4), явно выбранной пользователем; о том, что Windows явно отключает WOL только на переходе к гибридному завершению, а не на переходе к гибернации; о моделях, чья прошивка и аппаратура поддерживают пробуждение из S4/S5, в этом случае Windows не участвует; о процедуре отключения снятием флажка «Включить быстрый запуск (рекомендуется)» в «Электропитании» панели управления > «Действие кнопок питания»; и о том, что отключение не рекомендуется.  2 3 4 5 6 7

  5. Microsoft Learn, Distinguishing fast startup from wake-from-hibernation. О трёх режимах загрузки: холодном, выходе из гибернации и быстром (введён в Windows 8); о том, что холодная загрузка загружает ядро, перечисляет устройства и загружает драйверы, тогда как быстрый запуск только читает файл гибернации; о подготовке к быстрому запуску: закрытие приложений, выход из всех пользовательских сеансов, отправка драйверам IRP питания для подготовки к гибернации и сохранение образа памяти ядра, включая драйверы режима ядра, в hiberfil.sys перед отключением питания; о различении через TargetSystemState и EffectiveSystemState у SYSTEM_POWER_STATE_CONTEXT; о том, что драйвер NDIS отключает способность минипорта к пробуждению для быстрого запуска и не отключает её для выхода из гибернации; и о том, что драйверы, которые настраивают по-разному при холодной загрузке и при выходе из гибернации, после быстрого запуска настраивают как при холодной загрузке.  2 3 4 5 6 7 8

  6. Microsoft Learn, System power states. О том, что быстрый запуск — тип завершения работы, который выводит пользователя перед созданием файла гибернации; о том, что система выглядит для пользователя как S5, но на самом деле проходит через S4, а реакция на сигналы пробуждения устройств следует этому; о содержимом Session 0, записываемом на диск; о двух типах файла гибернации, полном (по умолчанию 40%) и уменьшенном (по умолчанию 20%, только быстрый запуск), и о разном выводе powercfg /a для каждого; о том, что сначала выполнять /size 0, когда /type reduced не удаётся; о том, что быстрый запуск — значение по умолчанию, когда запрашивается завершение работы, тогда как запрос перезагрузки и вызов API завершения работы приложением дают полное завершение работы (S5); о том, что приложения, службы и драйверы уведомляются при входе в гибернацию, а драйверы и службы при возобновлении восстанавливаются в состояние до гибернации, а не перезапускаются; и о SHUTDOWN_HYBRID для InitiateShutdown и EWX_HYBRID_SHUTDOWN для ExitWindowsEx 2 3 4 5 6 7 8 9 10

  7. Microsoft Learn, Per-user services in Windows. О том, что службы на пользователя создаются при входе и останавливаются и удаляются при выходе.  2

  8. Microsoft Learn, Optimizing Performance and Responsiveness. О том, что быстрый запуск, введённый в Windows 8, — поведение загрузки по умолчанию, а процесс завершения работы обновлён так, чтобы писать данные на диск так же, как гибернация; о фазах загрузки: инициализация BIOS, чтение файла гибернации, возобновление устройств, возобновление Winlogon, инициализация Explorer и Post On/Off; и о том, что файл гибернации содержит весь системный контекст, записанный при завершении работы. 

  9. Microsoft Learn, shutdown. О том, что /s завершает работу компьютера; /hybrid — параметр, который завершает работу устройства и готовит его к быстрому запуску, используемый вместе с /s; /g полностью завершает работу, затем перезагружает, возобновляя зарегистрированные приложения, если включён Automatic Restart Sign-On; и о том, что значение по умолчанию для /t — 30 секунд, допускается 0.  2 3

  10. Microsoft Q&A, why is Task Host preventing shutdown?. Об ответе поддержки, объясняющем, что выбор «Завершение работы» с удерживаемой клавишей Shift на рабочем столе или экране входа временно отключает быстрый запуск на этот раз и выполняет полное завершение работы (ответ поддержки сообщества, а не официальный справочник). 

  11. Microsoft Learn, InitiateSystemShutdownExA function (winreg.h). О том, что система перезагружается сразу после завершения работы, когда bRebootAfterShutdown равен TRUE, и сбрасывает кэши на диск и безопасно отключает питание, когда FALSE; и о том, что для завершения работы локального ПК на вызывающем потоке нужна привилегия SE_SHUTDOWN_NAME, которую вошедший пользователь может включить по умолчанию.  2 3

  12. Microsoft Learn, WMI Tasks: Desktop Management. О получении времени работы компьютера вычитанием свойства LastBootUpTime класса Win32_OperatingSystem из текущего времени. 

  13. Microsoft Learn, Get-Uptime. О том, что командлет введён в PowerShell 6.0 и вычисляет время с последней загрузки ОС по таймеру высокого разрешения (счётчик тиков с момента старта системы), поэтому значение может немного отличаться от выведенного из LastBootUpTime у Win32_OperatingSystem WMI. 

  14. Microsoft Learn, Ethernet. О том, что поведение завершения работы по умолчанию — гибридное (S4); о том, что NIC не готовится к пробуждению и удалённое пробуждение не поддерживается ни при гибридном завершении (S4), ни при полном (S5); и о том, что WOL поддерживается только из сна (S3) или гибернации (S4). 

  15. Microsoft Learn, Modern Standby Wake Sources. О том, что ПК Modern Standby остаются подключёнными к сети (Wi-Fi, мобильный широкополосный доступ, Ethernet) на низкой мощности даже с выключенным экраном; о том, что устройства Wi-Fi, Ethernet и MBB обеспечивают непрерывное соединение и служат источниками пробуждения; о том, что Remote Desktop и общий доступ к файлам могут разбудить SoC по Ethernet; и о том, что в Windows 11 версии 24H2 и новее многие источники пробуждения отключаются при обнаружении чрезмерного расхода батареи.  2

  16. Microsoft Learn, Wake On LAN for Surface devices. О том, что Wake on LAN по умолчанию работает на устройствах Surface во время Modern Standby начиная с Windows 10 версии 1607, а пробуждение из гибернации (S4) или завершения работы (S5) требует поддержки на стороне док-станции вроде Surface Dock 2. 

  17. Microsoft Learn, Hibernate Once/Resume Many (HORM). О том, что значение реестра, которое отключает быстрый запуск, — HiberbootEnabled (DWORD, 0 — отключено, 1 — включено) в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Power, и о том, что powercfg /h off, который отключает гибернацию, удаляет hiberfil.sys.  2 3

  18. Microsoft Learn, Policy CSP - ADMX_WinInit. О политике «Требовать использование быстрого запуска» (Hiberboot, WinInit.admx, Конфигурация компьютера > Система > Завершение работы), которая управляет использованием быстрого запуска; о том, что система требует включённой гибернации, когда политика включена; о том, что локальная настройка используется, когда она отключена или не задана; о ключе реестра Software\Policies\Microsoft\Windows\System со значением HiberbootEnabled; и о том, что её можно настроить из Intune как ./Device/Vendor/MSFT/Policy/Config/ADMX_WinInit/Hiberboot 2 3

  19. Microsoft Learn, How to troubleshoot unexpected reboots by using the system event logs. О том, что событие 1074 записывает процесс, пользователя, причину и тип завершения работы, которое его запросило, а 41 и 6008 указывают на неожиданную остановку. 

  20. Microsoft Learn, How to disable and re-enable hibernation on a computer that is running Windows. О процедурах powercfg.exe /hibernate off и on; о том, что гибридный сон больше не работает, когда гибернация отключена; и о том, что hiberfil.sys — скрытый системный файл в корне диска, где установлена ОС, примерно того же размера, что ОЗУ, без которого компьютер не может гибернироваться.  2

  21. Microsoft Learn, Powercfg command-line options. О /hibernate on / off; о /size, задающем размер файла гибернации как процент памяти; о /type reduced | full, задающем тип файла гибернации, причём уменьшенный файл поддерживает только hiberboot; и о том, что HiberFileSizePercent 40 и больше считается полным файлом гибернации, поэтому для перехода к уменьшенному сначала нужно выполнить /size 0

  22. Microsoft Learn, InitiateShutdownA function (winreg.h). О том, что в Windows 8 и новее SHUTDOWN_HYBRID задают в сочетании с одним или несколькими флагами из той же таблицы (сочетание с SHUTDOWN_POWEROFF — отключение питания для быстрого запуска, SHUTDOWN_RESTART — перезагрузка, SHUTDOWN_NOREBOOT только останавливает без отключения питания), и без SHUTDOWN_HYBRID завершение работы всегда полное.  2

  23. Microsoft Learn, ExitWindowsEx function (winuser.h). О том, что EWX_HYBRID_SHUTDOWN — флаг, доступный в Windows 8 и новее, который сочетают с EWX_SHUTDOWN, чтобы запросить завершение работы, подготовленное к быстрому запуску; о том, что InitiateSystemShutdown / InitiateSystemShutdownEx — функции, которые использовать, когда вызывающий не интерактивный пользователь; о том, что завершение работы или перезагрузка требуют, чтобы вызывающий процесс включил привилегию SE_SHUTDOWN_NAME через AdjustTokenPrivileges; и о том, что EWX_SHUTDOWN только останавливает систему до точки, где питание можно безопасно отключить, а питание отключает EWX_POWEROFF 2 3 4

  24. Microsoft Learn, Suspend Services Duration. О том, что все службы, зарегистрированные на события управления питанием (SERVICE_ACCEPT_POWEREVENT), получают уведомление о приостановке; о том, что уведомления отправляются последовательно с тайм-аутом 30 секунд на службу; и о том, что с точки зрения службы быстрый запуск — то же, что гибернация.  2

  25. Microsoft Learn, SERVICE_STATUS structure (winsvc.h). О том, что только службы, которые задали SERVICE_ACCEPT_SHUTDOWN / SERVICE_ACCEPT_PRESHUTDOWN / SERVICE_ACCEPT_POWEREVENT в dwControlsAccepted, получают уведомления SERVICE_CONTROL_SHUTDOWN / SERVICE_CONTROL_PRESHUTDOWN / SERVICE_CONTROL_POWEREVENT соответственно. 

Недавние статьи с теми же тегами помогут подробнее изучить близкие темы.

Эти страницы показывают тему статьи в более широком контексте услуг и решений.

Статья напрямую связана со следующими услугами.

Частые вопросы

Вопросы, которые часто возникают при консультациях по теме статьи.

Неисправность, которую не устранило «Завершение работы», исчезла после «Перезагрузки». Почему?
На клиентских версиях Windows 8 и новее «Завершение работы» в конфигурации с включённым быстрым запуском (значение по умолчанию на большинстве ПК с поддержкой гибернации) — гибридное завершение работы. Пользователь выходит из системы, но состояние ядра, драйверов и служб сохраняется в файл гибернации (hiberfil.sys) и при следующей загрузке восстанавливается как есть. То есть сердцевина ОС не сброшена. «Перезагрузка», напротив, независимо от настройки быстрого запуска всегда выполняет полный цикл загрузки, поэтому плохое состояние драйверов и служб сбрасывается. Однако сам факт, что перезагрузка помогла, не подтверждает причину. Прерывистая проблема могла просто не воспроизвестись, или перезагрузка завершила отложенное обновление. Несколько раз подтвердите, что «после завершения работы воспроизводится, после перезагрузки нет», сопоставьте с событием Kernel-Boot 27 в системном журнале, что последняя загрузка была 0x1 (быстрый запуск), и с записями на стороне драйверов, и только тогда считайте перенесённое состояние причиной. При изоляции проблемы используйте «перезагрузку», а не «выключить и включить».
Время работы в диспетчере задач не сбрасывается уже несколько дней. Это поломка?
Сам счётчик времени работы работает правильно. Если вы каждую ночь «завершаете работу», а время работы растёт, это с высокой вероятностью заданное поведение быстрого запуска (гибридного завершения работы), но незавершённое завершение работы выглядит так же, поэтому не заключайте «ничего не сломано», пока не проверите событие 27 и соседние записи журнала, описанные ниже. Время работы — это время с загрузки ядра, а при гибридном завершении ядро только гибернируется и восстанавливается, поэтому счётчик продолжает идти. Документация Microsoft прямо указывает, что при завершении работы по инициативе пользователя ядро, драйверы и службы сохраняются и восстанавливаются, а не перезапускаются, поэтому время работы между перезапусками ядра может быть значительно дольше, чем в прежних версиях Windows. Время работы также сохраняется при выходе из сна или гибернации и при незавершённом завершении работы, поэтому для уверенности подтвердите событием Kernel-Boot 27 в системном журнале, что тип последней загрузки был 0x1 (быстрый запуск). Чтобы сбросить время работы, выберите «Перезагрузка» или выполните полное завершение работы командой shutdown /s /t 0.
Стоит ли отключать быстрый запуск?
Не повсеместно. Microsoft не рекомендует отключать быстрый запуск, и на обычном ноутбуке более быстрая загрузка перевешивает минусы. Отключать имеет смысл на машинах, которые эксплуатируют из расчёта «отключение питания всё инициализирует», например аппаратных ПК и тестовых машинах, в dual-boot средах, которые делят диск с другой ОС, и на тестовых машинах, которые загружаются из другой ОС и меняют том (в этом случае одного отключения быстрого запуска недостаточно: явная гибернация остаётся, поэтому также отключите гибернацию через powercfg /h off или потребуйте полное завершение работы в процедуре перед сменой ОС). Если цель — освободить место на диске, отключение быстрого запуска не удаляет файл гибернации (hiberfil.sys), поэтому цели не достигнет. Чтобы уменьшить файл гибернации, сохранив быстрый запуск, используйте powercfg /h /type reduced; если гибернация не нужна вовсе — powercfg /h off. Если просто «хотите один раз сбросить», перезагрузка или shutdown /s /t 0 делают это без смены настройки.
Не могу разбудить выключенный ПК через Wake on LAN.
В Windows 10/11 Wake on LAN не поддерживается ни из завершения работы по умолчанию (гибридного), ни из полного завершения работы (S5). Поскольку от состояния, в котором пользователь приказал завершить работу, ожидают нулевого потребления, Windows не готовит сетевой адаптер к пробуждению. Wake on LAN доступен из сна (S3) или когда пользователь явно выбрал гибернацию (S4). Гибридное завершение работы тоже по сути S4, но Windows явно отключает Wake on LAN только на переходе к гибридному завершению. Для машины, которую хотите будить ночью для обновлений, держите её в «Сне» или «Гибернации», а не в «Завершении работы», либо проверьте функции пробуждения прошивки. На машинах Modern Standby (S0 low-power idle), у которых нет S3, сеть может быть источником пробуждения даже во сне, но можно ли машину реально разбудить, зависит от NIC, прошивки, условий питания и реализации OEM, поэтому проверьте на реальной машине, прежде чем встраивать в эксплуатацию.
Выбрал «Обновить и завершить работу» в Windows Update, но при следующей загрузке обновление всё ещё не закончено.
В справочной статье Microsoft прямо сказано, что некоторые обновления могут завершиться только в загрузке после полного завершения работы и могут не завершиться, когда загрузка идёт через быстрый запуск (гибернацию). Когда нужно наверняка закончить обновление, выбирайте «Обновить и перезагрузить». В средах под Configuration Manager эта задержка улучшена в Configuration Manager 2002 и Windows 10 21H1.
Наше внутреннее бизнес-приложение вызывает shutdown. Какой API даёт полное завершение работы?
InitiateSystemShutdownEx и InitiateSystemShutdown никогда не становятся гибридными: при bRebootAfterShutdown = FALSE они отключают питание (полное завершение работы), при TRUE — перезагружают. InitiateShutdown выполняет завершение работы для быстрого запуска, только когда флаг SHUTDOWN_HYBRID сочетается с SHUTDOWN_POWEROFF (в сочетании с SHUTDOWN_RESTART перезагружает, а SHUTDOWN_NOREBOOT только останавливает систему, не отключая питание), а ExitWindowsEx — только когда EWX_HYBRID_SHUTDOWN сочетается с EWX_SHUTDOWN (EWX_HYBRID_SHUTDOWN отдельно не задают). Если приложение реализует кнопку «выключить» аппаратного ПК, вызовите InitiateSystemShutdownEx с bRebootAfterShutdown = FALSE или ExitWindowsEx только с EWX_POWEROFF (без EWX_HYBRID_SHUTDOWN; EWX_SHUTDOWN только останавливает систему до точки, где питание можно безопасно отключить, и питание не отключает), и вы получите полное завершение работы независимо от настройки (оба предполагают, что привилегия SE_SHUTDOWN_NAME включена через AdjustTokenPrivileges: ExitWindowsEx на токене процесса, InitiateSystemShutdownEx на действующем токене вызывающего потока; если она оставлена выключенной, вызов не удаётся). Из командной строки shutdown /s /t 0 по умолчанию — полное завершение работы и становится гибридным, только если добавить /hybrid.

Об авторе

Страница с профилем автора статьи.

Го Комура

Представитель KomuraSoft LLC

Специализируется на разработке программного обеспечения для Windows, техническом консалтинге и расследовании сбоев, особенно в проектах с унаследованными системами и трудно воспроизводимыми ошибками.

Публичные ссылки

Вернуться в блог