WinCE中的RAM-Based Registry与HIVE-Based Registry
WinCE支持兩種類型注冊表:RAM-BasedHIVE-Based,默認使RAM-Based注冊表。 1.RAM-Based注冊表
RAM-Based注冊表所有注冊表數據存儲象存儲(object store),就存放RAM里面。般有電池備份RAM系統面,就說,當系統掉電以,自動切換成電池供電,此時RAM還有供電,所以面數據不丟失,這樣采RAM-Based注冊表非常有效。
RAM-Based注冊表于經常熱啟動(Warm Boot)設備面,少冷啟動(Cold Boot)設備面。
2.HIVE-Based注冊表
HIVE-Based注冊表注冊表數據存成文,就存掉電不丟失數據磁盤面,HIVE注冊表被分成兩部分:系統Hive戶Hive,就system.hvuser.hv。個戶系統,包含個戶Hive,不同戶Hive(user.hv)該戶登陸時候被加載,被注銷時候卸載。
實際HIVE-Based注冊表包含三個部分,稱引Hive,系統Hive戶Hive,就Boot.hv,system.hvuser.hv。Boot.hv主于系統引時候所需注冊表設置,這部分設置不被保存磁盤面,就說,系統掉電以就丟失。實際,這部分應該說屬于RAM-Based注冊表,由于這部分數據不需改動,所以就無所謂。System.hv存放關于系統注冊表設置,user.hv存放戶相關注冊表設置。
般們編譯WinCE系統時候,Platform Builder根據platform.reg文注釋標簽判斷哪些注冊表設置放入boot.hv,凡注釋標簽”;HIVE BOOT SECTON””;END HIVE BOOT SECTION”間設置都被放入boot.hv,其都放default.hvuser.hv。
WinCE第次引時候,所有.hv都被放RAM,WinCE系統首先讀boot.hv進行相關引時候設置,然default.hvuser.hv放磁盤指定路徑面,這個路徑注冊表設置,然default.hv被重命名system.hv。當系統第二次啟動時候,比較磁盤.hv存.hv否致,如果不致,拷貝磁盤面.hv存。
們以看出,實際HIVE注冊表運行時候放RAM,這樣速度比較快。啟動時候從磁盤讀出,戶更改注冊表以,被保存磁盤,保存時機以設置,以選擇戶更改立刻保存磁盤,以選擇reboot時候保存。
3HIVE-Based注冊表實現
(1) 添加HIVE-Based注冊表項
系統支持HIVE-Based注冊表”Catalog Item View”選擇”Core OS”->”CEBASE”->”File System and Data Store”->”Registry Storage”->”Hive-based registry”,如圖:
需添加相應注冊表設置,般們platform.reg添加HIVE相關設置,首先需添加HIVE注釋標簽,如:
;HIVE BOOT SECTION
…
<your registry setting>
…
;END BOOT SECTION
所有HIVE有關注冊表設置包括HIVE存放磁盤驅動相關設置都放HIVE注釋標簽。
(3) 設置注冊表存放位置:
面通過個例子說明設置system.hvuser.hv存放位置
[HKEY_LOCAL_MACHINEinitBootVars]
"SystemHive"="NandFlashsystem.hv"
"ProfileDir"="NandFlashuser.hv"
"Flags"=dword:1
"RegistryFlags"=dword:1
“SystemHive”設置system.hv存放位置,這里存放NandFlash磁盤根目錄面。
“ProfileDir”設置user.hv存放位置,這里存放NandFlash磁盤根目錄面。
“Flags”設置否立刻啟動Device Manager,主啟動Hive-Based所需存儲設備。
“RegistryFlags”設置什么時候新注冊表設置入磁盤,這里表示立刻入。
(4) 修改磁盤設備驅動配置
相關磁盤驅動添加支持Hive設置,如:
[HKEY_LOCAL_MACHINEDriversBuiltInNANDFlash]
"Flags"=dword:1000
由于Hive注冊表被保存NandFlash,所以”Flags”設置添加NandFlash設備驅動注冊表設置。面設置只有使HIVE-Based注冊表時候需,如果不Hive注冊表,需注釋掉。
(5) 添加Storage Manager相關配置
具體添加如:
[HKEY_LOCAL_MACHINESystemStorageManagerProfiles<ProfileName><FileSystemName>]
"MountBootable"=dword:1
同樣,使HIVE注冊表時候需述設置,如果不使HIVE注冊表,則注釋掉就以。
面曾經基于NandFlash支持Hive注冊表設置,僅供參考:
; HIVE BOOT SECTION
[HKEY_LOCAL_MACHINEinitBootVars]
"SystemHive"="NANDFlashsystem.hv" ;unmask this line to use flash
"ProfileDir"="NANDFlashusr.hv"
"Start DevMgr"=dword:1
"DefaultUser"="default"
"Flags"=dword:1
"RegistryFlags"=dword:1
[HKEY_LOCAL_MACHINESystemStorageManagerAutoLoadNSFlash]
"DriverPath"="DriversBuiltInNANDFlash"
"LoadFlags"=dword:1 "Order"=dword:0
[HKEY_LOCAL_MACHINEDriversBuiltInNANDFlash]
"Dll"="ep94xxnandflash.dll"
"Prefix"="DSK" "Order"=dword:0
;"Ioctl"=dword:4
"Profile"="NSFlash"
"IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
"Flags"=dword:1000 ;unmask this line when enable HIVE
;"MemBase"=dword:00000000
;"MemLen"=dword:00000000
; Override names in default profile
[HKEY_LOCAL_MACHINESystemStorageManagerProfilesNSFlash]
"Name"="Ep94xx NAND Flash"
"Folder"="NANDFlash"
"PartitionDriver"="MSPart.dll"
"AutoMount"=dword:1
"AutoPart"=dword:1
"AutoFormat"=dword:1
"MountFlags"=dword:2 ;unmask this line when enable HIVE
[HKEY_LOCAL_MACHINESystemStorageManagerProfilesNSFlashFATFS]
"MountFlags"=dword:2 ;unmask this line when enable HIVE
"EnableCache"=dword:1
"CacheSize"=dword:1000
"MountBootable"=dword:1
"Flags"=dword:00000024
;"Flags"=dword:00680024
;"FormatTfat"=dword:1
"CheckForFormat"=dword:1
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的WinCE中的RAM-Based Registry与HIVE-Based Registry的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2019年利率调整为多少?10月银行定期
- 下一篇: 交通银行信用卡查询密码忘记了怎么办