{{Multiple issues| {{more citations needed|date=February 2026}} {{notability|date=March 2024}} }} {{short description|Process by which the Microsoft Windows of operating system family initializes}} The booting process of Microsoft Windows varies between different releases.
== DOS-based Windows == === Windows 1.x/2.x === In Windows versions 1.01 to Windows 2.11, the system is loaded when <code>WIN.COM</code> is executed within MS-DOS. It then loads <code>WIN100.BIN</code> or <code>WIN200.BIN</code> and <code>WIN100.OVL</code> or <code>WIN200.OVL</code>, along with the configuration settings file <code>WIN.INI</code>. The default shell is the MS-DOS Executive (<code>MSDOS.EXE</code>).
The modules <code>GDI.EXE</code>, <code>KERNEL.EXE</code> and <code>USER.EXE</code>, fonts, and the various device drivers (such as <code>COMM.DRV</code>, <code>MOUSE.DRV</code>, <code>KEYBOARD.DRV</code>) are incorporated in <code>WIN100.BIN</code>/<code>WIN200.BIN</code> and <code>WIN100.OVL</code>/<code>WIN200.OVL</code>.
In Windows/386, <code>WIN200.BIN</code> starts <code>WIN386.EXE</code>.
=== Windows 3.x/9x === {{Main|Architecture of Windows 9x#Boot sequence}} In Windows 3.x and 95/98/ME, the boot loader phase is handled by MS-DOS. During the boot phase, <code>CONFIG.SYS</code> and <code>AUTOEXEC.BAT</code> are executed, along with the configuration settings files <code>WIN.INI</code> and <code>SYSTEM.INI</code>. Virtual device drivers are also loaded in the startup process: they are most commonly loaded from the registry (<code>HKLM\System\CurrentControlSet\Services\VxD</code>) or from the <code>SYSTEM.INI</code> file.
MS-DOS starts <code>WIN.COM</code>.
In Windows 3.x, the <code>WIN.COM</code> starts <code>DOSX.EXE</code> (standard mode) or <code>WIN386.EXE</code> (386 enhanced mode). The <code>DOSX.EXE</code> (the standard mode kernel) later starts <code>KRNL286.EXE</code> (the Win16 API); the <code>WIN386.EXE</code> (the enhanced mode kernel) later starts <code>KRNL386.EXE</code> (the Win16 API in enhanced mode). Later, the Program Manager (<code>PROGMAN.EXE</code>) shell is started.
In Windows 9x, the <code>WIN.COM</code> starts <code>VMM32.VXD</code>. When all system configuration files and device drivers have been loaded, the 16-bit modules, <code>KRNL386.EXE</code>, <code>GDI.EXE</code>, and <code>USER.EXE</code>, are loaded, then the 32-bit DLLs (<code>KERNEL32.DLL</code>, <code>GDI32.DLL</code>, and <code>USER32.DLL</code>) are loaded. The 32-bit VxD message server (MSGSRV32) starts <code>MPREXE.EXE</code>, which is responsible for loading the network logon client (such as Client for Microsoft Networks, Microsoft Family Logon or Windows Logon). When a user is logging on to Windows, the startup sound is played, the shell (usually <code>EXPLORER.EXE</code>) is loaded from the [boot] section of the <code>SYSTEM.INI</code> file, and startup items are loaded.
In all versions of Windows 9x except ME, it is also possible to load Windows by booting to a DOS prompt and typing "win". There are some command line switches that can be used with the WIN command: with the <code>/D</code> switch, Windows boots to safe mode, and with the <code>/D:n</code> switch, Windows boots to safe mode with networking. The latter switch only works properly with Windows 95.<ref>{{cite web|url=http://support.microsoft.com/kb/196249|title=Unable to Start Windows 98 in Safe Mode with Network Support|date=January 23, 2007|website=Support|publisher=Microsoft|url-status=dead|archive-url=https://web.archive.org/web/20071014014634/http://support.microsoft.com/kb/196249|archive-date=October 14, 2007}}</ref> In Windows 3.1, additional options are available, such as <code>/3</code>, which starts Windows in 386 enhanced mode, and <code>/S</code>, which starts Windows in standard mode<ref>{{cite web|url=http://support.microsoft.com/kb/82731|title=Windows 3.1 WIN.COM Command Switches|date=October 13, 2003|website=Support|publisher=Microsoft|url-status=dead|archive-url=https://web.archive.org/web/20070423060547/http://support.microsoft.com/kb/82731|archive-date=April 23, 2007}}</ref>
A startup sound was first added in Windows 3.0 after installing the Multimedia Extensions (MME),<ref>{{Citation|title=Windows 3.0 MME... actually has a startup sound (and more!)|url=https://www.youtube.com/watch?v=FsIBUJleu5U |archive-url=https://ghostarchive.org/varchive/youtube/20211213/FsIBUJleu5U |archive-date=2021-12-13 |url-status=live|language=en|access-date=2021-06-22}}{{cbignore}}</ref> but not enabled by default until Windows 3.1.
== Windows CE == Windows CE uses WCELDR as its second stage boot loader in x86 platforms; or uses EBOOT as its boot loader in ARM platforms.<ref>{{cite web |url=https://download.microsoft.com/download/2/4/A/24A36661-A629-4CE6-A615-6B2910A1367A/BSP%20Porting%20Guide%20for%20Windows%20Embedded%20Compact%207.pdf |title=BSP Porting Guide for Windows Embedded Compact 7}}</ref> On the startup process, NK.BIN boot image or NK.EXE kernel is loaded by the WCELDR or EBOOT bootloader.<ref>{{cite web |url=https://download.microsoft.com/download/F/D/D/FDDC7E09-3929-4E0D-B82F-1145D476ABB1/Webinar_Booting%20x86%20systems%20into%20Windows%20Embedded%20Compact%207.pdf |title=Understanding CEPC Boot Sequence in Windows Embedded Compact 7}}</ref><ref>{{cite web |url=https://download.microsoft.com/download/6/7/2/672327a4-cacd-4b9e-9c40-cb5223cb8f3d/wince_min_requirements_bsp.pdf |title=Minimum Requirements for a Windows CE Board Support Package}}</ref>
== Windows NT == {{see also|NTLDR|Windows Boot Manager}} {{Expand section|1=notable, non-"how-to" material selected from [https://en.wikipedia.org/w/index.php?title=Booting_process_of_Windows_NT&oldid=1215918680 this version of "Booting process of Windows NT"], as per Wikipedia:Articles for deletion/Booting process of Windows NT|small=no|date=April 2024}}
In Windows NT, the booting process is initiated by <code>NTLDR</code> in versions before Vista and the Windows Boot Manager (<code>BOOTMGR</code>) in Vista and later.<ref>{{Cite web |title=Boot Sequence of Windows Multi-Boot – Multibooters.com |url=http://www.multibooters.com/guides/boot-sequence-of-mixed-windows-multiboot.html |access-date=2020-11-19 |website=www.multibooters.com |archive-date=2020-02-19 |archive-url=https://web.archive.org/web/20200219003026/http://www.multibooters.com/guides/boot-sequence-of-mixed-windows-multiboot.html |url-status=live }}</ref> The boot loader is responsible for accessing the file system on the boot drive, starting <code>ntoskrnl.exe</code>, and loading boot-time device drivers into memory. Since Windows Vista, once all the boot and system drivers have been loaded, the Windows Startup Application (<code>wininit.exe</code>) starts service control manager (<code>services.exe</code>) to starts Windows services, and the Windows Startup Application starts the session manager (<code>smss.exe</code>) which begins the login process. After the user has successfully logged into the machine, winlogon applies User and Computer Group Policy setting and runs startup programs declared in the Windows Registry and in "Startup" folders.<ref name="Troubleshooting">{{cite web |date=November 3, 2005 |title=Troubleshooting the Startup Process |url=https://technet.microsoft.com/en-us/library/bb457123.aspx |access-date=October 24, 2011 |work=Windows XP Resource Kit |publisher=Microsoft Technet |archive-date=October 26, 2011 |archive-url=https://web.archive.org/web/20111026145049/http://technet.microsoft.com/en-us/library/bb457123.aspx |url-status=live }}</ref> Finally the Windows shell will be started; in Windows NT 3.x, the shell is usually Program Manager, and in Windows NT 4.0 and later, the shell is usually Windows Explorer.
==See also== * Booting process of Android devices * Booting process of Linux * Booting process of macOS
==References== {{Reflist}}
{{Windows Components}} {{Firmware and booting}}
Category:Windows architecture Category:Booting processes