阅读:1357回复:5
关于regcopyfile函数,wxl_50685330进来看看
我想问的是:使用regcopyfile是不是把注册表保存在了外存(指CF,MMC等)中,还是保存flash中也可以啊,另外,使用它保存了注册表文件,怎么在启动时恢复,你说在oeminit中做,请你给出恢复的例子好吗,谢谢!
|
|
论坛版主
|
沙发#
发布于:2004-09-14 22:26
非常不好意思,因为没有实际实践,我原以为regXXX可以工作,但我又仔细看了一下,在oemiocontrol(对了,我说的是这个函数,不是oeminit)里面使用系统定义的IOCTL_HAL_INITREGISTRY可以在filesys.exe起来后对注册表进行修改,但这个时候device.exe并没有起来,所以用存储到外部设备的文件来恢复注册表在这儿应该不能工作,这个时候CE的注册表已经就绪,可以修改,并且在oal层中,要改的话可以利用flash里面保存的数据,你可以在flash里面留一段空间来存放你的数据,在IOCTL_HAL_INITREGISTRY读出来,并利用函数写到注册表中,我看了一下这些函数,有:
NKRegCreateKeyEx NKRegOpenKeyEx NKRegQueryValueEx NKRegCloseKey NKRegSetValueEx 兄弟试试能否正常工作。 |
|
板凳#
发布于:2004-09-16 14:28
wxl_50685330兄弟:
你的意思是说如果事先使用regcopyfile把注册表保存在了外存(指CF,MMC,DOC等)中,那么在系统重新启动时是无法从外存中恢复注册表信息的,是吗?但如果事先把注册表信息保存在了flash中,那么就可以利用函数oemiocontrol恢复注册表信息,我的理解对吗? |
|
|
论坛版主
|
地板#
发布于:2004-09-16 15:14
恩,看"关于注册表存储(有10分等着你)"里面我也才知道可以告诉ce如果有保存的注册表可以让他先启动保存注册表的设备的驱动,而后ce可以通过文件系统加载这个注册表文件,你说你解决了,是这样做的吗?在oemiocontorl里面是可以预配置注册表,自己在flash里面开一段区域,作为信息存储区。注册表信息需要自己管理,而且修改的内容也需要自己组织,但是没有刚才的办法方便,如果前面说的办法可行的话我觉得那个好:)
|
|
地下室#
发布于:2004-09-17 08:43
没错,实际上我遇到的问题就是如此:在系统恢复注册表的时候,CF卡的驱动还没有加载,所以这时无法访问cf。发现了问题之后,解决起来就容易了。再一次谢谢wxl_50685330兄弟! :D
|
|
|
5楼#
发布于:2004-09-17 09:18
实际上,还有更简单的方法。
在系统恢复注册表后,再执行一次暖启动(warm boot)。也就是说,要启动两次才能完成注册表恢复。 [编辑 - 9/17/04 by leo_cyl] |
|