1

Можно завершить работу Windows с помощью программного обеспечения, т. Е. Щелкнуть где-нибудь (кнопка «Пуск» /«Выключение») или с помощью таких инструментов, как shutdown.exe и т.д.

Также возможно выключить Windows, нажав кнопку питания на компьютере.

Какая разница? Ссылки, неопровержимые факты?

Примечания / Разъяснение / Фон:

  • Мне всегда казалось, что нажатие кнопки питания приведет к быстрому завершению работы Windows, особенно с Windows XP: компьютерам в нашей корпоративной сети, на которых запущена XP, часто требуется полная минута для выключения с помощью программного обеспечения, но они всегда выключаются через несколько секунд, когда используя кнопку питания.
  • Я знаю, что можно настроить, что должна делать Windows при нажатии кнопки питания.
  • Я говорю о нажатии кнопки питания в течение очень короткого промежутка времени, а не о ее удержании в течение нескольких секунд.
  • Спецификация ACPI, стр. 28: «То, что система делает с этим запросом, зависит от проблем политики, связанных с пользовательскими настройками, запросами пользовательских функций и данными приложения». Но что делает Windows?
  • Я нашел много догадок и догадок при поиске в интернете, но я не нашел никаких серьезных фактов. Пожалуйста, не предоставляйте больше догадок, спасибо.

2 ответа2

5

Это то же самое.

Как вы сказали, вы можете принудительно завершить работу, удерживая кнопку питания дольше (примерно 4 секунды), но это буквально отключает питание. ACPI-инициированное отключение такое же, как и то, которое вы вызываете с помощью программного обеспечения. В обоих случаях все приложения, работающие на компьютере, должны быть уведомлены о предстоящем завершении работы (возможно, прервать его, в зависимости от версии Windows) и закрыть себя и любые файлы, которые они открыли изящно. Это все требует времени.

По сути, в обоих случаях происходит волшебство - это вызов функции ExitWindowsEx , которая является частью API Windows, используемой программистами.* Если вы укажете флаг EWX_POWEROFF , система выключится и питание отключится. Эту функцию также можно вызывать с флагом EWX_FORCE , который будет делать то, на что это похоже, - принудительно завершать работу , не давая запущенным приложениям возможности отложить или отменить ее. Если вы сделаете это, отключение, скорее всего, произойдет быстрее, но это не будет полностью "чистое" отключение, и поэтому оно опасно.

Различие в поведении, которое вы видите, возможно, связано с тем, как инициируется завершение работы программного обеспечения. Например, когда вы запускаете shutdown.exe , вы можете указать значение тайм-аута, когда должен быть запущен запрос на выключение. В течение этого периода ожидающее завершение работы можно отменить, снова запустив shutdown.exe с флагом /a (чтобы отменить ожидающее завершение работы). 60 секунд - довольно распространенное значение для этого периода ожидания.

Остальная разница, вероятно, просто перцептивна.

* Тот факт, что Windows является многопользовательской операционной системой, может несколько усложнить ситуацию. Но это выходит за рамки здесь. Любой другой метод инициирования выключения (например, InitiateSystemShutdown) будет вести себя аналогично.

2

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .