файл C:windowssystem32shutdown.exe
необходимо для выключения или перезагрузки Windows?
Является завершением работы.exe необходимо для выключения Windows?
4 ответа
твой вопрос конечно же возникает из вашего ответа на https://codegolf.stackexchange.com/a/24011/18907 , в частности kinokijuf
прокомментируйте первоначальный пересмотр вашего ответа.
As kinokijuf
сказал, что Windows не Unix. На Unices и Linux,shutdown
действительно участвует в процессе полного завершения работы. Это программа, которая посылает предупреждающие сообщения для зарегистрированных пользователей и, что пишет /run/nologin
файл для предотвращения дальнейшего входа в систему пока перед запланированным временем выключения.
в Windows NT это не так.
действие "завершение работы" на "кнопку питания" в меню Пуск Проводника Windows, пункт меню "завершение работы" в Диспетчере задач,REBOOT /S
в TCC или Take Command и других прикладных программах, которые позволяют вам завершать работу системы, все инициируют завершение работы, непосредственно вызывая один из двух вызовов Win32 API:InitiateSystemShutdownEx()
или ExitWindowsEx()
. Они не делают вещи косвенно, запустив shutdown
программа. (На самом деле для этого требуется больше кода, чем просто вызов вызова Win32 API.) The shutdown
программа, когда один делает локальное завершение работы, вызывает те же вызовы Win32 API тоже.
на самом деле winlogon
,csrss
и smss
это программы, которые завершают работу Windows NT. В частности, это winlogon
, который выполняет основную работу по обработке отложенных запросов на выключение.
более дальнеишее чтение
- Jonathan de Boyne Pollard (2006). процесс завершения работы Windows NT 6. Часто Задаваемые Вопросы.
shutdown
. FreeBSD 9.2 страницы руководства. 2013-03-19.shutdown
.systemd
справочника. 2013. Freedesktop.org.shutdown
.upstart
справочника. 2009. Canonical Ltd.InitiateSystemShutdownEx
. MSDN. Microsoft корпорация.ExitWindowsEx
. MSDN. Корпорация Майкрософт.REBOOT
. Возьмите Command / TCC Help. Программное обеспечение JP.
нет.
проводник не вызывает эту команду при завершении работы из меню Пуск.
завершение работы системы возможно с помощью вызова Win32 API (ответ@JdeBP предоставляет подробную информацию об этом, если он заинтересован). Команда - это просто удобный способ сделать это из сценария, запланированной задачи или диалогового окна Выполнить.
Как объясняет ultrasawblade (upvote), завершение работы системы является вызов Win32 API для: ExitWindowsEx
ссылка также имеет пример того, как реализовать завершение работы из C. Кроме того, вы можете сделать это из C# с помощью P/Invoke (Platform Invoke). pinvoke.net имеет кучу подписей для использования:http://www.pinvoke.net/default.aspx/user32/exitwindowsex.html
не надо. shutdown.exe
это просто утилита для выключения локального или удаленного компьютера. Это выглядит как shutdown.exe
использует родной APIs NtShutdownsystem
. В то время как Windows использует ExitWindowsEx
(как уже упоминалось).
Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]