Windows 10 and 11 optimize the startup sequence to ensure a balance between performance and usability, leveraging a combination of software and hardware advancements. Both operating systems use a prioritized approach to load essential system processes, services, and user applications efficiently. They utilize the Unified Extensible Firmware Interface (UEFI) for faster initialization of hardware components, while Fast Startup, a hybrid of shutdown and hibernation, allows quicker boot times by saving a system state to disk. Additionally, Windows employs a feature called Startup Impact Assessment, which categorizes applications into "High," "Medium," or "Low" impact to delay non-critical processes until after the desktop is usable. Tools like Task Manager and Startup Settings let users control which programs launch at boot, helping to streamline performance further. These mechanisms collectively ensure that the system is ready for use quickly while preserving user control over startup priorities.
Recently when i was developing Windows Enhance Boot Experience program, i need to ensure that my program should be the first ones to starts right after user logs in so that it will display a black overlay screen covering the screen prompting "Loading...". In order to do that, i need to study on how Windows sequence which program to start and below is the sequence how Windows 10 or 11 prioritize to starts.
Windows launches on startup the programs in parallel, but in groups, as follows:
- Windows Boot Device Drivers, having a Start value equal to 0
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services - Windows Auto-start Services & Drivers, having a Start value equal to 2
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services - Windows delayed Auto-start Services & Drivers, having a Start value equal to 2 and DelayedAutostart equal to 1:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services - Run Services Once only:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce - Run Services permanently:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices
After the user logs on, the order is as follows :
- Notify of the logon event:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify - User Initialization:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit - Shell:
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell - ShellServiceObjectDelayLoad pointing to CLSID InProcServer:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad - RunOnce Local Machine Key:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx - Run permanently:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run - RunOnce Current User Key (mostly for installations):
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce - Explorer Run:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run - Load Key (deprecated):
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\load
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows - SharedTaskScheduler:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\SharedTaskScheduler - AppInit_DLLs:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows - All Users Startup Folder:
C:\Users\All Users\Start Menu\Programs\Startup - User Profile Startup Folder :
C:\Users\username\Start Menu\Programs\Startup
In addition to these features, Windows 10 and 11 also make use of background service optimization to enhance startup efficiency. The Windows Subsystem for Services ensures that only necessary background tasks are loaded during boot, deferring less critical services until after the system is fully operational. ReadyBoot further accelerates the process by pre-loading frequently used data into memory, leveraging the SuperFetch algorithm to predict user behavior. Windows also supports per-user startup customizations, allowing different users on the same device to have distinct startup configurations, enhancing personalization and resource allocation. For enterprise environments, tools like Group Policy and Microsoft Endpoint Manager enable IT administrators to enforce startup application policies, ensuring consistency and reducing unnecessary resource usage across devices. These comprehensive strategies highlight Windows' commitment to blending speed, reliability, and user control in the startup experience.