Is shutdown.exe necessary when shutting Windows down, or is it just part of what is used to shut Windows down? Are other files and/or processes used instead? Today’s SuperUser Q&A post has the answer to a curious reader’s question.
Today’s Question & Answer session comes to us courtesy of SuperUser—a subdivision of Stack Exchange, a community-driven grouping of Q&A web sites.
SuperUser reader Mukul Kumar wants to know if shutdown.exe is necessary for shutting Windows down:
Is the file C:\Windows\System32\shutdown.exe necessary to shut down or restart Windows?
Is shutdown.exe necessary for shutting down or restarting Windows?
SuperUser contributor JdeBP has the answer for us:
Your question of course originates from your answer at StackExchange, in particular from kinokijuf’s comment upon the initial revision of your answer.
As kinokijuf said, Windows is not Unix. On Unices and Linux, shutdown is indeed involved in the full shut down process. It is the program that sends regular warning messages to logged-in users and that writes the /run/nologin file to prevent further logging-on a short while before the scheduled shut down time.
On Windows NT, this is not the case.
The “shut down” action on the “power button” on the Windows Explorer Start menu, the “shut down” menu option in Task Manager, REBOOT /S in TCC or Take Command, and other application programs that allow you to shut the system down all initiate shut down by directly calling one of two Win32 API calls: InitiateSystemShutdownEx() or ExitWindowsEx(). They do not do things indirectly by running the shut down program. That actually needs more code to do than just calling the Win32 API call. The shut down program, when one is doing a local shut down, calls those same Win32 API calls too.
It is actually winlogon, csrss, and smss that are the programs that shut down Windows NT. In particular, it is winlogon that does the main work of processing deferred shut down requests.
- Jonathan de Boyne Pollard (2006). The Windows NT 6 shutdown process. Frequently Given Answers.
- Shutdown. FreeBSD 9.2 manual pages. 2013-03-19.
- Shutdown. Systemd manual pages. 2013. Freedesktop.org.
- Shutdown. Upstart manual pages. 2009. Canonical Ltd.
- InitiateSystemShutdownEx. MSDN. Microsoft corporation.
- ExitWindowsEx. MSDN. Microsoft corporation.
- REBOOT. Take Command / TCC Help. JP Software.
Have something to add to the explanation? Sound off in the comments. Want to read more answers from other tech-savvy Stack Exchange users? Check out the full discussion thread here.