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

[11-20 15:54:08]   来源:http://www.88dzw.com  arm嵌入式   阅读:8174

文章摘要:作者:蒙洋,www.88dzw.com嵌入式学院讲师。引言:Windows CE作为一种嵌入式的操作系统,已经有了10多年的历史,从最早的1.0版本到如今的最新的6.0版本。Windows CE已经在嵌入式操作系统领域占据了非常重要的地位,同时还派生出了很多不同的版本,应用到不同的领域,Windows Mobilej就是其中非常成功的一个版本。作为一种嵌入式操作系统,我们有必要了解它的启动过程和加载机制,特别是其中的注册表加载是系统加载的核心。Windows CE内核创建过程用的REG文件几乎和其他桌面版本Windows操作系统就有相同的格式,只是去掉了文件顶部的版本标记,防止开发者错误的将W

基于Windows CE的注册表在线修改及保存,标签:arm嵌入式系统,arm系统,http://www.88dzw.com

  作者:蒙洋,www.88dzw.com嵌入式学院讲师。

  引言:

  Windows CE作为一种嵌入式的操作系统,已经有了10多年的历史,从最早的1.0版本到如今的最新的6.0版本。Windows CE已经在嵌入式操作系统领域占据了非常重要的地位,同时还派生出了很多不同的版本,应用到不同的领域,Windows Mobilej就是其中非常成功的一个版本。

  作为一种嵌入式操作系统,我们有必要了解它的启动过程和加载机制,特别是其中的注册表加载是系统加载的核心。Windows CE内核创建过程用的REG文件几乎和其他桌面版本Windows操作系统就有相同的格式,只是去掉了文件顶部的版本标记,防止开发者错误的将Windows CE的注册表信息添加到主机的注册表系统里,造成系统的故障。

  1、 Windows CE注册表简介:

  与其他桌面版本Windows一样,Windows CE也使用注册表(Registry)来保存应用程序、驱动程序和用户的设定以及其他一些配置信息。 Windows CE注册表也采用树形结构来管理配置信息。

  Windows CE支持四个根键,描述如下:

  键名描述

  HKEY_LOCAL_MACHINE         硬件和驱动配置数据

  HKEY_CURRENT_USER          用户配置数据

  HKEY_CLASSES_ROOT OLE      文件类型匹配配置数据

  HKEY_USERS                 适用于所有用户的数据

  2、 Windows CE注册表的类型和加载过程

  由于嵌入式系统的特点,一些嵌入式设备是没有外部存存储设备。因此Windows CE的注册表提供了两种实现方式:基于RAM的注册表(RAM- Based Registry)和基于Hive的注册表(Hive-Based Registry)。我们可以选择在Windows CE中使用任何一种注册表,通常在我们的ARM嵌入式系统中会选择Flash作为外部存储设备,所以我们选择基于Hive的注册表类型。下面我们分析一下Windows CE注册表的加载过程:


  图2-1

  nk.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-based Registry",实验平台:CPU:S3C2410;外部存储设备(Flash)K9F1208UOM 打开%BSP%/Files/platform.reg,找到如下信息:

  ; HIVE BOOT SECTION

  [HKEY_LOCAL_MACHINE\init\BootVars]

  "SystemHIVE"="system.hv"

  ; "PROFILEDIR"="Documents and Settings"

  "Start DevMgr"=dword:1

  "RegistryFlags"=dword:1

  [HKEY_LOCAL_MACHINE\init\BootVars]

  "DefaultUser"="default" "SYSTEMHIVE"的值为系统HIVE文件的路径。"Start DevMgr"是一个布尔值,指示是否开始就执行设备管理器device.exe,只有想把系统HIVE存储在对象存储中才在此设置为0,所以这里我们要设置为1。可以在上述的注册表位置下输入"DefaultUser"="",指定默认的用户名。如果是单用户系统,可以不设置在“; HIVE BOOT SECTION”和“; END HIVE BOOT SECTION”之间的所有驱动程序的注册表信息中都加入下列一个标志:

[1] [2]  下一页


Tag:arm嵌入式arm嵌入式系统,arm系统arm嵌入式

《基于Windows CE的注册表在线修改及保存》相关文章

分类导航
最新更新
热门排行