基于WindowsCE的注册表在线修改及保存

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

基于WindowsCE的注册表在线修改及保存分类:苦与乐---wince2011-03-1311:5537人阅读评论(0)收藏举报引言:WindowsCE作为一种嵌进式的操纵系统,已经有了10多年的历史,从最早的1.0版本到如今的最新的6.0版本。WindowsCE已经在嵌进式操纵系统领域占据了非常重要的地位,同时还派生出了很多不同的版本,应用到不同的领域,WindowsMobilej就是其中非常成功的一个版本。作为一种嵌进式操纵系统,我们有必要了解它的启动过程和加载机制,特别是其中的注册表加载是系统加载的核心。WindowsCE内核创建过程用的REG文件几乎和其他桌面版本Windows操纵系统就有相同的格式,只是往掉了文件顶部的版本标记,防止开发者错误的将WindowsCE的注册表信息添加到主机的注册表系统里,造成系统的故障。1、WindowsCE注册表简介:与其他桌面版本Windows一样,WindowsCE也使用注册表(RegiSTry)来保存应用程序、驱动程序和用户的设定以及其他一些配置信息。WindowsCE注册表也采用树形结构来治理配置信息。WindowsCE支持四个根键,描述如下:键名描述HKEY_LOCAL_MACHINE硬件和驱动配置数据HKEY_CURRENT_USER用户配置数据HKEY_CLASSES_ROOTOLE文件类型匹配配置数据HKEY_USERS适用于所有用户的数据2、WindowsCE注册表的类型和加载过程由于嵌进式系统的特点,一些嵌进式设备是没有外部存存储设备。因此WindowsCE的注册表提供了两种实现方式:基于RAM的注册表(RAM-BasedRegistry)和基于Hive的注册表(Hive-BasedRegistry)。我们可以选择在WindowsCE中使用任何一种注册表,通常在我们的ARM嵌进式系统中会选择Flash作为外部存储设备,所以我们选择基于Hive的注册表类型。下面我们分析一下WindowsCE注册表的加载过程:图2-1nk.exe执行,启动filesys.exe。filesys.exe加载引导HIVE,此时引导HIVE位于nk.bin解压之后的文件中。filesys.exe启动device.exe,之后处于等待状态,等待device.exe将包含系统HIVE的文件系统和存储设备的驱动程序加载完毕。而这个文件系统和存储设备的驱动程序存在于引导HIVE中。device.exe加载上述所说的文件系统驱动程序和存储设备驱动程序,使之开始工作。之后device.exe处于等待状态。filesys.exe被唤醒,加载并且安装系统HIVE。之后filesys.exe处于等待状态。nk.exe按照系统HIVE的信息开始执行初始化工作。其中包括加载驱动程序和启动一些应用程序。其中加载驱动程序一般由device.exe执行,而启动应用程序由filesys.exe执行。这时device.exe和filesys.exe已经被唤醒。3、设置基于HIVE的注册表在PB中加进Hive-basedRegistry,实验平台:CPU:S3C2410;外部存储设备(Flash)K9F1208UOM打开%BSP%/Files/platform.reg,找到如下信息:;HIVEBOOTSECTION[HKEY_LOCAL_MACHINE/init/BootVars]SYSTEMHIVE=system.hv;PROFILEDIR=DocumentsandSettingsStartDevMgr=dword:1RegistryFlags=dword:1[HKEY_LOCAL_MACHINE/init/BootVars]DefaultUser=defaultSYSTEMHIVE的值为系统HIVE文件的路径。StartDevMgr是一个布尔值,指示是否开始就执行设备治理器device.exe,只有想把系统HIVE存储在对象存储中才在此设置为0,所以这里我们要设置为1。可以在上述的注册表位置下输进DefaultUser=,指定默认的用户名。假如是单用户系统,可以不设置在“;HIVEBOOTSECTION”和“;ENDHIVEBOOTSECTION”之间的所有驱动程序的注册表信息中都加进下列一个标志:Flags=dword:1000这个标志是一个位掩码,它可以和其它已经存在的Flags或运算。值1000表示此驱动程序只加载一次,这样device.exe就不会把当先驱动程序加载两次了。保证将包含系统HIVE的文件系统驱动程序的注册表信息和存储设备的驱动程序的注册表信息被包含在“;HIVEBOOTSECTION”和“;ENDHIVEBOOTSECTION”之间,在这两个语句之间的注册表数据全部属于引导HIVE。[HKEY_LOCAL_MACHINE/System/StorageManager/AutoLoad/FlashDrv]DriverPath=Drivers//BlockDevice//FlashDrvLoadFlags=dword:1MountFlags=dword:11BootPhase=dword:0Flags=dword:1000[HKEY_LOCAL_MACHINE/Drivers/BlockDevice/FlashDrv]Prefix=DSKDll=FLASHDRV.dll//调用Flash驱动Order=dword:0Ioctl=dword:4Profile=FlashDrvFriendlyName=MSFlashDriverMountFlags=dword:11BootPhase=dword:0Flags=dword:1000;BindBINFStotheblockdriver[HKEY_LOCAL_MACHINE/System/StorageManager/Profiles/FlashDrv]DefaultFileSystem=BINFS//建立BINFS文件系统PartitionDriver=mspart.dllAutoMount=dword:1AutoPart=dword:1MountFlags=dword:2Folder=MYFlashDisk//实现可以读写的文件夹Name=MicrosoftFlashDiskBootPhase=dword:0Flags=dword:1000上面的信息添加到platform.reg的“HIVEBOOTSECTION”和“ENDHIVEBOOTSECTION”之间,其中Folder=MYFlashDisk文件实现可以读写文件目录MYFlashDisk注册表信息被保存到此文件夹,系统冷启动后会到此文件夹下读取上次用户基于注册表的设置。编者注:源码请访问结语:本文讨论了WindowsCE基于HIVE的注册表的在线修改和保存,分析了WindowsCE注册表的加载过程,完善了嵌进式系统实际应用中的题目,使得目前的WindowsCE运行版本更加接近与桌面版Windows系统。

1 / 4
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功