Hive能够为系统提供保存系统设置的能力,而Hive-Based Registry则是使用Hive作为其存储的方法。在系统的特性中,选择Hive-Based Registry而不是RAM Based则可以使得系统跟注册表相关的设置可以得到保存。
要为系统提供Hive的能力,首先需要编写块设备的驱动程序。比如,如果要使用Flash设备,MS帮你做了一层,这层负责向上呈现DSK流接口,然后他开放了一系列FMD_XXX的函数要你实现,比如FMD_READSECTOR之类的,你做好了和他的库和并在一起就可以做出FLASH驱动了。如何编写块设备驱动程序这里就不多讨论,MSDN上有专题进行介绍。编写好之后,按照平常的方式加载文件系统。然后在Storage Manager中,记得在其对应的Profile有一个叫做MountFlags键,该键可以可以有如下几个选择:
0:普通的加载
1:加载为隐藏目录
2:该设备可以放置Hive文件,该设备的第一个分区将获得系统的Hive
4:加载为根目录
8:当加载为根目录时,隐藏ROM目录
显然,将其设置为2就可以实现Hive了
然后增加注册表键值:
[HKEY_LOCAL_MACHINE\init\BootVars]
"SystemHive"="系统Hive路经"
系统Hive路经的设置是相对于设备目录的,要包括文件名的。比如说,我的设备目录是\haha,我这里设置为Reg\freasy.hv,那么系统的设置将放在\haha\Reg\freasy.hv当中。
唉,五一放假一阵子太轻松了,写东西都觉得生疏了,写得不流畅,不好意思了,有什么不对的,大家也请提出来啊