基于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 "http://校準信息
Landscape
"CalibrationData"="515,503 763,748 258,749 269,255 764,255 "
評論