Hive-based Registry Initialization (Windows CE 5.0)英文
2013-11-24 11:39
465 查看
本文来自MSDN http://msdn.microsoft.com/en-us/library/ms892397.aspx 方便查找
The following steps show the process that Filesys.exe uses to initialize the hive-based registry.
Filesys.exe calls
OEMIoControl with
IOCTL_HAL_GETREGSECUREKEYS two times. The first call is a query to find out the required data buffer size. The second call is a query to get the buffer of secure key data. For more information, see
Requesting Additional Secure Registry Keys.
Filesys.exe mounts the boot hive (Boot.hv) from ROM. The boot hive contains the information that Filesys.exe needs to determine where the registry is stored and to start the drivers that are required to access it.
Filesys.exe calls OEMIoControl with IOCTL
IOCTL_HAL_INITREGISTRY, to give the OAL a chance to add data to the registry early in the boot process.
Filesys.exe creates named events for all event names in the HKEY_LOCAL_MACHINE\System\Events registry location in the boot hive. These events are set by the processes that own them. For more information, see
Ready-Event Registration.
Filesys.exe loads the Storage Manager if HKEY_LOCAL_MACHINE\System\StorageManager points to a loadable DLL. Filesys.exe creates a thread to initialize the Storage Manager. The thread will exit when initialization is complete.
If the Flags value is set to 1 or 4, Filesys.exe starts boot phase 0. For more information about boot phases, see
Boot Phases.
The system locale is initialized.
If the Flags value is set to 1 or 4, Filesys.exe starts boot phase 1. For more information about boot phases, see
Boot Phases.
If the Flags value is set to 2 or 8, Filesys.exe starts Device.exe.
Filesys.exe creates an event called "SYSTEM/BootPhase2", which is triggered when the file system containing the system registry is loaded. For versions of Windows CE earlier that 5.0, this file system is identified by the
Filesys.exe waits for a file system to register as the storage location for registry hives.
If the registry hives are not being stored on a file system, Filesys.exe calls
OEMIoControl with
IOCTL_HAL_GET_HIVE_RAM_REGION to find out if the registry data should be stored in a reserved area of RAM, instead of in a file.
Filesys.exe mounts the ROM portion of the system registry, Default.hv.
Filesys.exe calls OEMIoControl with with
IOCTL_HAL_GET_HIVE_CLEAN_FLAG and the HIVECLEANFLAG_SYSTEM flag to determine whether the OAL indicates that the system hive should be cleaned and recreated with data from ROM.
If a clean registry is not required, the system registry hive file (System.hv) is loaded from the file system that contains it. A signature in the system hive file is checked against a signature in the ROM portion of the system registry. If the signatures
do not match, then a clean registry is required, even if this is not indicated by
IOCTL_HAL_GET_HIVE_CLEAN_FLAG.
If a clean registry is required, the old registry hive file is deleted and a new hive file is created.
Filesys.exe invalidates any currently open system registry handles before swapping out the boot registry hive.
Filesys.exe migrates the changes from the boot registry hive to the system hive.
If the boot is not a clean boot, Filesys.exe sets the registry value
RegPersisted under HKEY_LOCAL_MACHINE to 1. At this point, non-user specific registry data becomes available.
Filesys.exe determines where the user profiles are stored by looking at the registry value ProfileDir under
HKEY_LOCAL_MACHINE\init\BootVars.
Filesys.exe calls OEMIoControl with IOCTL_HAL_GET_HIVE_CLEAN_FLAG and the HIVECLEANFLAG_USERS flag, to determine whether the OAL indicates that the user profiles should be cleaned. If so, all user profile directories are
removed, along with their contents.
Filesys.exe determines if the default user profile should be loaded. If the registry value
NoDefaultUser under HKEY_LOCAL_MACHINE\init\BootVars is set to 1, a call to
SetCurrentUser is required to load a user profile. If
NoDefaultUser is set to 0, the default user profile is loaded.
The name of the default user is determined by the value of DefaultUser, a REG_SZ value, in
HKEY_LOCAL_MACHINE\init\BootVars. The DefaultUser is set to the name of the user to use as the default profile when the system boots. If it is an existing user, the appropriate user hive is loaded. If it is a new user, the
user profile can be created. If DefaultUser is not set, a user by the name "default" is loaded. You can choose a default user name with the following registry key.
Copy
When Filesys.exe loads the user registry, it performs the following actions:
Mounts the ROM portion of the user registry hive from the User.hv file in ROM.
Mounts the remaining portion of the user registry hive from the User.hv file in the user profile directory on the persistent file system.
A signature in the user hive file is checked against a signature in the ROM portion of the user registry. If the signatures do not match, then a clean registry is required. The User.hv file in the user profile directory is deleted and a new hive file is
created. No other files in the user profile directory are affected.
If the user registry is not clean, Filesys.exe sets the registry value
RegPersisted under HKEY_CURRENT_USER to 1.
The following steps show the process that Filesys.exe uses to initialize the hive-based registry.
Filesys.exe calls
OEMIoControl with
IOCTL_HAL_GETREGSECUREKEYS two times. The first call is a query to find out the required data buffer size. The second call is a query to get the buffer of secure key data. For more information, see
Requesting Additional Secure Registry Keys.
Filesys.exe mounts the boot hive (Boot.hv) from ROM. The boot hive contains the information that Filesys.exe needs to determine where the registry is stored and to start the drivers that are required to access it.
Filesys.exe calls OEMIoControl with IOCTL
IOCTL_HAL_INITREGISTRY, to give the OAL a chance to add data to the registry early in the boot process.
Filesys.exe creates named events for all event names in the HKEY_LOCAL_MACHINE\System\Events registry location in the boot hive. These events are set by the processes that own them. For more information, see
Ready-Event Registration.
Filesys.exe loads the Storage Manager if HKEY_LOCAL_MACHINE\System\StorageManager points to a loadable DLL. Filesys.exe creates a thread to initialize the Storage Manager. The thread will exit when initialization is complete.
If the Flags value is set to 1 or 4, Filesys.exe starts boot phase 0. For more information about boot phases, see
Boot Phases.
The system locale is initialized.
If the Flags value is set to 1 or 4, Filesys.exe starts boot phase 1. For more information about boot phases, see
Boot Phases.
If the Flags value is set to 2 or 8, Filesys.exe starts Device.exe.
Filesys.exe creates an event called "SYSTEM/BootPhase2", which is triggered when the file system containing the system registry is loaded. For versions of Windows CE earlier that 5.0, this file system is identified by the
"MountFlags"=2bitmask in its Storage Manager profile. For Windows CE 5.0 and later, this file system is identified by
"MountAsBootable"=dword:1in the Storage Manager profile.
Filesys.exe waits for a file system to register as the storage location for registry hives.
If the registry hives are not being stored on a file system, Filesys.exe calls
OEMIoControl with
IOCTL_HAL_GET_HIVE_RAM_REGION to find out if the registry data should be stored in a reserved area of RAM, instead of in a file.
Filesys.exe mounts the ROM portion of the system registry, Default.hv.
Filesys.exe calls OEMIoControl with with
IOCTL_HAL_GET_HIVE_CLEAN_FLAG and the HIVECLEANFLAG_SYSTEM flag to determine whether the OAL indicates that the system hive should be cleaned and recreated with data from ROM.
If a clean registry is not required, the system registry hive file (System.hv) is loaded from the file system that contains it. A signature in the system hive file is checked against a signature in the ROM portion of the system registry. If the signatures
do not match, then a clean registry is required, even if this is not indicated by
IOCTL_HAL_GET_HIVE_CLEAN_FLAG.
If a clean registry is required, the old registry hive file is deleted and a new hive file is created.
Filesys.exe invalidates any currently open system registry handles before swapping out the boot registry hive.
Filesys.exe migrates the changes from the boot registry hive to the system hive.
If the boot is not a clean boot, Filesys.exe sets the registry value
RegPersisted under HKEY_LOCAL_MACHINE to 1. At this point, non-user specific registry data becomes available.
Filesys.exe determines where the user profiles are stored by looking at the registry value ProfileDir under
HKEY_LOCAL_MACHINE\init\BootVars.
Filesys.exe calls OEMIoControl with IOCTL_HAL_GET_HIVE_CLEAN_FLAG and the HIVECLEANFLAG_USERS flag, to determine whether the OAL indicates that the user profiles should be cleaned. If so, all user profile directories are
removed, along with their contents.
Filesys.exe determines if the default user profile should be loaded. If the registry value
NoDefaultUser under HKEY_LOCAL_MACHINE\init\BootVars is set to 1, a call to
SetCurrentUser is required to load a user profile. If
NoDefaultUser is set to 0, the default user profile is loaded.
The name of the default user is determined by the value of DefaultUser, a REG_SZ value, in
HKEY_LOCAL_MACHINE\init\BootVars. The DefaultUser is set to the name of the user to use as the default profile when the system boots. If it is an existing user, the appropriate user hive is loaded. If it is a new user, the
user profile can be created. If DefaultUser is not set, a user by the name "default" is loaded. You can choose a default user name with the following registry key.
Copy
[HKEY_LOCAL_MACHINE\init\BootVars] "DefaultUser"=<username>
When Filesys.exe loads the user registry, it performs the following actions:
Mounts the ROM portion of the user registry hive from the User.hv file in ROM.
Mounts the remaining portion of the user registry hive from the User.hv file in the user profile directory on the persistent file system.
A signature in the user hive file is checked against a signature in the ROM portion of the user registry. If the signatures do not match, then a clean registry is required. The User.hv file in the user profile directory is deleted and a new hive file is
created. No other files in the user profile directory are affected.
If the user registry is not clean, Filesys.exe sets the registry value
RegPersisted under HKEY_CURRENT_USER to 1.
相关文章推荐
- Hive-based Registry Initialization (Windows Embedded CE 6.0)英文
- Hive-based Registry Setup (Windows Embedded CE 6.0)英文
- Viewing Boot Events With Readlog (Windows CE 5.0)英文
- How to Use Hive-based Registry IN WINCE.NET
- 基于HIVE注册表初始化(Windows CE 5.0)
- Hive-Based Registry Startup Sequence
- 如何使用HIVE-based Registry
- Filesys.exe Boot Process (Windows CE 5.0) 英文
- Nk.exe Boot Process (Windows CE 5.0) 英文
- windows ce 5.0 直接连接局域网内 sql2005数据库
- windows ce 5.0 直接连接局域网内 sql2005数据库
- Performance Counter Registry Hive Consistency
- Windows CE 5.0启动过程分析
- Windows CE 5.0 数据类型大全
- Sql Server 2008安装时出现performance counter registry hive consistency failed的解决
- Target Control Service (Windows CE 5.0)
- Map operator initialization failed at org.apache.hadoop.hive.ql.exec.tez.TezProcessor
- TIJ英文原版书籍阅读之旅——Chapter Five:Initialization & Cleanup
- Performance counter registry hive consistency check
- Windows CE 5.0:驱动程序---可插拔的编解码器要求