Session Manager
After all entries that have Boot and Startup data types are processed, the kernel starts the Session Manager (Smss.exe), a user process that continues to run until the operating system is shut down. The Session Manager performs important initialization functions, such as:
- Creating system environment variables.
- Starting the kernel-mode portion of the Win32 subsystem (implemented by %SystemRoot%\System32\Win32k.sys), which causes Windows to switch from text mode (used to display the Windows Boot Manager menu) to graphics mode (used to display the Starting Windows logo). Windows-based applications run in the Windows subsystem. This environment allows applications to access operating system functions, such as displaying information to the screen.
- Starting the user-mode portion of the Win32 subsystem (implemented by %SystemRoot%\System32\Csrss.exe). The applications that use the Windows subsystem are user-mode processes; they do not have direct access to hardware or device drivers. Instead, they have to access Windows APIs to gain indirect access to hardware. This allows Windows to control direct hardware access, improving security and reliability. User-mode processes run at a lower priority than kernel-mode processes. When the operating system needs more memory, it can page to disk the memory used by usermode processes.
- Starting the Logon Manager (%SystemRoot%\System32\Winlogon.exe).
- Creating additional virtual memory paging files.
- Performing delayed rename operations for files specified by the registry entry HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager \PendingFileRenameOperations. For example, you might be prompted to restart the computer after installing a new driver or application so that Windows can replace files that are currently in use.
Session Manager searches the registry for service information contained in the following subkeys:
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager contains a list of commands to run before loading services. The Autochk.exe tool is specified by the value of the registry entry BootExecute and virtual memory (paging file) settings stored in the Memory Management subkey. Autochk, which is a version of the Chkdsk tool, runs at startup if the operating system detects a file system problem that requires repair before completing the startup process.
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager \SubSystems stores a list of available subsystems. For example, Csrss.exe contains the user-mode portion of the Windows subsystem.
If startup fails during the kernel loading phase after another operating system was installed on the computer, the cause of the problem is likely an incompatible boot loader. Boot loaders installed by versions of Windows prior to Windows Vista cannot be used to start Windows Vista or Windows 7. Use System Recovery to replace startup files with Windows startup files.
Otherwise, if startup fails during the kernel loading phase, use boot logging to isolate the failing feature. Then use safe mode to disable problematic features (if possible) or use System Recovery to replace problematic files. For more information, see the section titled "Startup Troubleshooting Before the Starting Windows Logo Appears" later in this tutorial. If you experience a Stop error during this phase, use the information provided by the Stop message to isolate the failing feature.
In this tutorial:
- Configuring Startup and Troubleshooting Startup Issues
- What is New with Windows Startup
- Boot Configuration Data
- BCD Stores
- System Recovery
- Windows Boot Performance Diagnostics
- Understanding the Startup Process
- Power-on Self Test Phase
- Initial Startup Phase
- Initial Startup Phase for BIOS Computers
- Initial Startup Phase for EFI Computers
- Windows Boot Manager Phase
- Windows Boot Loader Phase
- Kernel Loading Phase
- Control Sets
- Values for the Start Registry Entry
- Value Descriptions for Type Entries
- Other Registry Entries in the Servicename Subkeys
- Session Manager
- Logon Phase
- Important Startup Files
- How to Configure Startup Settings
- How to Use the Startup And Recovery Dialog Box
- How to Use the System Configuration Tool
- How to Use BCDEdit
- How to Interpret BCDEdit Output
- How to Back Up and Restore Settings
- How to Change the Default Operating System Entry
- How to Change the Boot Menu Time-Out
- How to Change the Order of Boot Manager Menu Items
- How to Create an Entry for Another Operating System
- How to Remove a Boot Entry
- How to View and Update Global Debugger Settings
- How to Remove the Windows 7 Boot Loader
- How to Configure a User Account to Automatically Log On
- How to Disable the Windows Startup Sound
- How to Speed Up the Startup Process
- The Process of Troubleshooting Startup
- Startup Troubleshooting Before the Starting Windows Logo Appears
- How to Start the System Recovery Tools
- How to Run Startup Repair
- How to Use BootRec.exe
- How to Diagnose Hardware Problems
- How to Use System Restore
- How to Manually Repair the Boot Sector
- How to Manually Update the BCD Registry File
- How to Manually Replace Files
- How to Reinstall Windows
- Startup Troubleshooting After the Starting Windows Logo Appears
- How to Restore the Last Known Good Configuration
- How to Enable Boot Logging
- How to Start in Safe Mode
- How to Identify Failing Drivers and Services
- How to Analyze Startup Problems in Safe Mode
- Event Viewer (Eventvwr.msc)
- System Information
- Error Reporting Service
- How to Use Device Manager to View or Change Resources
- How to Analyze Boot Logs
- How to Roll Back Drivers
- How to Temporarily Disable a Service
- Troubleshooting Startup Problems After Logon
- How to Temporarily Disable Startup Applications and Processes
- How to Disable Startup Applications Using the Shift Key
- How to Disable Startup Programs Using the System Configuration Utility
- How to Disable Startup Applications Configured Using Group Policy or Logon Scripts
- How to Permanently Disable Startup Applications and Processes
- Manually Remove the Entry