File System Boot Process (Windows Embedded CE 6.0)
1/6/2010
After the kernel starts the Filesys.dll process, Filesys.dll must initialize its state before the kernel finishes its initialization. The kernel must wait because it is dependent on the registry, which is initialized by Filesys.dll. The following steps show the boot process for Filesys.dll.
- Filesys.dll detects whether this is a cold or warm boot.
For a cold boot, the object store memory is initialized and then mapped for Filesys.dll. For a warm boot, memory is not initialized before being mapped for Filesys.dll. - Filesys.dll loads the OEM Certification DLL from ROM.
- If a cold boot is required on a system that had previously warm booted, Filesys.dll calls the OEM adaptation layer (OAL) function pNotifyForceCleanboot.
- For a cold boot, Filesys.dll initializes the real-time clock by calling the OEMIoControl function with the IOCTL_HAL_INIT_RTC I/O control.
- Filesys.dll initializes the following APIs in the order listed:
- Database APIs
- File system APIs
- Point-to-point message queue APIs
- Event log APIs
- Registry APIs
For a cold boot, Filesys.dll initializes the registry data. The data initialization process varies, depending on whether the RAM-based or hive-based registry is in use.
If a default user profile is specified in the registry, Filesys.dll loads the default user profile and initializes data under HKEY_CURRENT_USER.
- If Device.dll is not started and HKEY_LOCAL_MACHINE\System\StorageManager points to a DLL that can be loaded, Filesys.dll loads Storage Manager.
If Storage Manager is loaded, Filesys.dll creates a thread to initialize it. The thread exits when it is completed. - Filesys.dll initializes national language support (NLS) data.
- For a clean boot, Filesys.dll reviews the Initobj.dat file and copies files from ROM into the root file system.
- Filesys.dll initializes the time zone and sets daylight saving time (DST), if necessary.
- For a cold boot, Filesys.dll sets the locale to use with the database engine by calling the CeChangeDatabaseLCID (EDB) for EDB databases**, or CeChangeDatabaseLCID (CEDB) for CEDB databases**.
In addition, for a cold boot, Filesys.dll populates the object store databases by loading data from the Initdb.ini file. - Filesys.dll communicates to the kernel that Filesys.dll is ready. Filesys.dll then waits for the kernel to signal that Filesys.dll can boot the rest of the OS.
- Filesys.dll 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.
- Filesys.dll runs the applications listed in HKEY_LOCAL_MACHINE\Init.
If Device.dll is located in HKEY_LOCAL_MACHINE\Init and has already started, Filesys.dll opens the SYSTEM/BOOTPHASE2 event and signals Device.dll.
This action enables Device.dll to reread the registry and perform the final driver initialization phase. Any driver can also wait for 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.dll and other components create a number of files and store them in user storage. These files can use as much as 1.8 MB of available user storage.
Files Created on Boot
The following table provides descriptions of files that are normally created in the process of initialization and cold boot.
All paths in the Location column of the following table are provided relative to the persistent storage root on the device.
Filename | Location | Typical size at boot in KB | Description |
---|---|---|---|
System.hv |
\Documents and Settings\system.hv |
345 |
System registry hive. |
User.hv |
\Documents and Settings\default\user.hv |
345 |
User registry hive for default user. |
Default.vol |
\Documents and Settings\default.vol |
345 |
Object store replacement volume for persistent CEDB databases. |
*.jpg |
\MyDocuments\MyPictures |
56 |
Default storage for user images. |
Replstor |
\ReplStorVol |
256 |
File replication database volume, created by fsreplxfilt.dll, the file replication file system filter. |
Mxip_system.vol, Mxip_lang.vol, Mxip_notify.vol, and Mxip_initdb.vol |
\ |
200 |
Metabase volumes, including language-specific data and storage for notifications. |
Cemail.vol |
\ |
65 |
Default e-mail storage. |
Pim.vol |
\ |
260 |
Personal Information Manager (PIM) data, such as address book and schedules. |
See Also
Concepts
Hive-based Registry Setup
OAL Initialization of RAM-based Registry
Hive-based Registry Initialization