基于WinCE的嵌入式系统注册表的研究
BOOT HIVE存储只用于系统启动时的系统设置。BOOT HIVE从ROM中读出并用于启动驱动程序和相关的文件系统。这个文件系统用于启动系统HIVE文件。当系统HIVE启动后,BOOT HIVE将被终止。当系统HIVE有效时,启动过程中被修改的注册表数据将被存放于系统HIVE中。但是BOOT HIVE在ROM中的数据还保持不变。
3 HIVE注册表的实现
HIVE注册表是通过修改系统的平台文件来实现的,在工程目录下的PLATFORM.REG文件中包含了系统的启动信息,HIVE注册表的启动方式不同于普通注册表的启动方式,它需要在系统加载设备管理器前加载系统存储媒介的驱动程序,只有这样才能在加载设备管理器当中提取设备在注册表中的保存信息,达到HIVE存储的目的。下面介绍如何让系统支持HIVE
注册表中的HIVE | 文件 | 描述 |
BOOT HIVE | BOOT.hv存于ROM中 | 包括所有 HKEY_LOCAL_MACHINE HKEY_CLASSES_ROOT HKEY_USERS下的数据,只是在启动时使用。启动后对它的修改将影响系统HIVE |
SYSTEM HIVE | OEM-dependen | 包括所有 HKEY_LOCAL_MACHINE HKEY_CLASSES_ROOT HKEY_USERS下的数据,包括对每个用户都一样的设备的设置 |
USER HIVE | USER.hv | 包括所有HKEY_CURRENT_USER下的数据,包含用户定义的设置。每个用户具有不同的HIVE,当用户登录时会启动它,当退出时,会将它关闭 |
表2 标准HIVE及其支持的文件
Table2 Standard HIVE and support type
注册表存储:
1)修改设备管理器的启动信息值
“Start DevMgr”= dword:1
此册项代表使用HIVE注册表存储系统信息
2)把系统的存储媒介驱动程序加在
“HIVE BOOT SECTION”与“END HIVE BOOT SECTION”
的注释之间,该注释被编译器选择提取之后,在系统上电后加载在设备管理器之前
3)在系统的存储媒介驱动程序上提供一个FLAG项,该项的目的是对目标数据进行逻辑运算。
“flags”= dword:1
通过以上参数的修改,系统即可支持HIVE注册表存储,该存储方式有效存储系统保存在HIVE注册表中的信息,比如触摸屏触电校验信息,系统IP地址等。经大量试验证明,该方法有效可行。
4 系统注册表修改分析
4.1 触摸屏驱动程序注册表设置
下面是本多媒体系统触摸屏驱动程序的注册表信息设置,我们在校准的时候需要在注册表中存储一些校准坐标信息:
[HKEY_LOCAL_MACHINEControlPanel]
"InputConfig"= dword:3 ;3 =>键盘和触摸屏
[HKEY_LOCAL_MACHINEHARDWAREDEVICEMAPTOUCH]
"DriverName"="touch:dll"
"MaxCalError"=dword:10
"CalibrationData"="500,512 762,268 758,760 244,758 241,266 "//校准信息
Landscape
"CalibrationData"="515,503 763,748 258,749 269,255 764,255 "
评论