After the kernel starts the Filesys.exe process, Filesys.exe must initialize its state before triggering the kernel to finish its initialization. The kernel must wait because it is dependent on the registry, which is initialized by Filesys.exe. The following steps show the boot process for Filesys.exe.
1. Filesys.exe detects if the boot process is a cold or warm boot.
On a cold boot, the object store memory is initialized and then mapped for Filesys.exe. On a warm boot, memory is not initialized before being mapped for Filesys.exe.
2. Filesys.exe loads the OEM Certification DLL from
3. If a cold boot is required on a system that had previously warm booted, Filesys.exe calls the OAL function pNotifyForceCleanboot.
4. If the boot process is a cold boot, Filesys.exe initializes the real-time clock by callingOEMIoControl with IOCTL_HAL_INIT_RTC.
5. Filesys.exe initializes the database application programming interfaces (APIs). For more information, see Database Reference.
6. Filesys.exe initializes the file system APIs.
7. Filesys.exe initializes the point-to-point message queue APIs. For more information, see Message Queue Point-to-Point.
8. Filesys.exe initializes the event log APIs.
9. Filesys.exe initializes the registry APIs. If the boot process is a cold boot, Filesys.exe initializes the registry data. The data initialization process varies based on whether the RAM-based or hive-based registry is in use. For more information, see RAM-based Registry Initialization or Hive-based Registry Initialization.
10. If a default user profile is specified in the registry, Filesys.exe loads the default user profile and initializes data under HKEY_CURRENT_USER.
11. If Device.exe is not started, and if HKEY_LOCAL_MACHINE\System\StorageManager points to a DLL that can be loaded, Filesys.exe loads the Storage Manager.
12. If the Storage Manager is loaded, Filesys.exe creates a thread to initialize it. The thread exits when it is completed.
13. Filesys.exe initializes the national language support (NLS) data.
14. If the boot process is a clean boot, Filesys.exe reviews the Initobj.dat file and copies files from ROM into the root file system.
15. Filesys.exe initializes the time zone and sets daylight saving time (DST), if necessary.
16. If the boot process is a cold boot, Filesys.exe sets the locale to use with the database engine by calling CeChangeDatabaseLCID (CEDB).
17. If the boot process is a cold boot, Filesys.exe populates the object store databases by loading data from the Initdb.ini file.
18. Filesys.exe communicates to the kernel that Filesys.exe is ready. Filesys.exe then waits for the kernel to signal that Filesys.exe can boot the rest of the operating system (OS).
19. Filesys.exe creates named events for all event names in the HKEY_LOCAL_MACHINE\System\Events registry location. These events are set by the processes that own them. For more information, see Ready-Event Registration.
20. Filesys.exe runs the applications listed in HKEY_LOCAL_MACHINE\Init. For more information, see How to Configure the Registry to Run an Application at Startup.
21. If Device.exe is located in HKEY_LOCAL_MACHINE\Init and it has already started, Filesys.exe opens the SYSTEM/BOOTPHASE2 event and signals Device.exe.
This action enables Device.exe to reread the registry and perform the final driver initialization phase. Any driver can also wait on the same event, to be notified when the real registry comes online. By doing so, the driver can reread registry data, if necessary.
During a normal boot process, Filesys.exe and other components create a number of files and store them in user storage. These files can use as much as 1.8MB of available user storage.