Windows CE下注册表备份和恢复

Windows CE 车机导航升级:利用 Explorer.exe 恢复文件管理器 2 种场景 本文详细解析了Windows CE车机导航升级中利用Explorer.exe恢复文件管理器的两种典型场景:文件复制过程中的界面崩溃和误操作导致的界面关闭。通过具体操作命令、预防措施和进阶技巧,帮助用户有效应对系统故障,提升导航升级的稳定性和效率。 阅读详情



1、 对象存储(object store)
  对象存储是Windows CE默认的数据存储机制。任何新创建的内核中都默认包含对象存储器。对象存储的实质是在RAM中创建一个文件系统,将文件保存在RAM中,这些文件来源于ROM。当设备启动时,引导程序将ROM中的内核文件解压并存放在RAM中。"/windows"目录就是基于对象存储的。对象存储的特点是文件可以压缩、支持事务机制(和数据库中的事务机制相似)、数据I/O相对较快。

A、对象存储中的对象类型包括文件、目录、数据库、记录、数据库卷。CE为每个对象分配一个对象ID(CEOID)。访问或者操作任何对象的前提是得到该对象ID。
B、CE能够自动压缩所有对象存储中的文件(CE提供了一个选项供OEM设置是否能够自动压缩文件)。所以文件没有压缩或不压缩的标志,但是有一个标志,标明此文件存在于ROM还是RAM中。一个文件最大长度可达到4 GB。
C、CE提供了三种文件系统:基于ROM的文件系统、基于RAM的文件系统、FAT文件系统。
2、 注册表(registry)
  CE下注册表和其它windows操作系统中注册表概念和结构基本相同。

A、CE下注册表限制:键名最大长度255个字符; 数据最大 4KB;子键深度最大值 16层。
B、根键有HKEY_CLASSES_ROOT、HKEY_CURRENT_USER、HKEY_LOCAL_MACHINE、HKEY_USERS。
C、操作注册表函数:

i. 打开RegOpenKeyEx 和创建RegCreateKeyEx 
ii. 读RegQueryValueEx写RegSetValueEx 
iii. 枚举入口或子键RegEnumValue、RegEnumKeyEx 
iv. 删除入口或子键RegDeleteValue、RegDeleteKey  
v. 关闭RegCloseKey
3、CE下注册表类型
  分为基于RAM的注册表和基于HIVE的注册表。

 

A、基于RAM的注册表,也叫基于对象存储(oject storage)的注册表。用于将注册表数据全部保存在RAM中。
i. 从CE v1.0开始到CE .NET之前,仅采用此技术来保存注册表。每个新创建的内核都默认采用此技术来保存注册表。
ii. 适合频繁热启动而不冷启动的设备。系统关闭时提供低电源给RAM。如果断电,重新启动设备后,系统将从内核中重新读取注册表数据到RAM。当然以前保存的用户数据已经丢失。
iii. 基于RAM的注册表也能够永久保存注册标数据。CE提供了两个机制。

1) 第一种机制的设计思路是在设备关闭前调用RegCopyFile函数将整个注册表数据以文件形式保存到永久存储器上。重新启动设备时,调用RegRestoreFile函数将文件全部读出到RAM中。但是这时必须一次热启动才能使恢复的注册表数据有效。所以每次启动就多出一次热启动。好在热启动非常快,几秒钟的时间。
2) 另一种机制可以避免前一种机制的需要两次启动的缺点。但也有它的缺点。OEM(原始设备制造商)可以在OAL层编写WriteRegistryToOEM and ReadRegistryFromOEM两个函数,内核在启动时会自动调用ReadRegistryFromOEM函数来读注册表数据。而应用程序调用RegFlushKey函数时,这个函数用调用WriteRegistryToOEM函数写注册表数据到永久存储器上。这个机制避免了两次启动的缺陷。但问题出现在内核启动时,调用ReadRegistryFromOEM之前文件系统驱动程序还没加载,那就无法打开、读取文件。CE帮助文件中说解决办法是将从永久存储器中读取数据的代码加到ReadRegistryFromOEM中。帮助中说的意思可不是调用ReadFile这么简单的,因为文件系统驱动程 序还没加载。
3) 个人建议:如果要采用基于RAM的注册表保存机制,而且要求永久保存注册表数据,使用第一种机制比较容易。
B、 基于HIVE的注册表。用于将注册表数据全部或部分保存到永久存储器上。
i.它是从CE.NET开始采用的新技术。适合经常冷启动而不热启动的设备。
ii.支持多用户信息分别保存。当一个用户登录时,加载这个用户的注册表数据,注销时卸载这个用户的注册表数据。
iii. HIVE是指一组键,包括子键、键值、数据。是保存或者加载注册表数据的单位。分为系统HIVE(system hive)、用户HIVE(uer hive)、引导HIVE(boot hive)。
1) 系统HIVE包含了关于系统的设置信息。具体保存注册表中HKEY_LOCAL_MACHINE、HKEY_CLASSES_ROOT、HKEY_USERS键下所有数据。保存系统HIVE的文件的路径在【HKEY_LOCAL_MACHINE/init/BootVars】下,键名为"systemhive",键值为文件的路径。默认为"/Documents and Settings/system.hv"。
2) 用户HIVE包含了一个用户的信息。具体保存注册表中HKEY_CURRENT_USER键下所有数据。保存用户HIVE的文件的路径同样为【HKEY_LOCAL_MACHINE/init/BootVars】下,键名为"profiledir",键值为所有用户HIVE的共同目录。默认为"/Documents and Settings",在这个目录下包含了以每个用户名命名的子目录。子目录里含有一个文件,默认文件名为user.hv。
3) 引导HIVE保存在ROM(内核)中。具体保存内容同系统HIVE一样。当解压内核并加载注册表时,系统先将引导HIVE数据读出,引导HIVE包含了永久存储器的驱动程序和文件系统的驱动程序,这些驱动加载后,系统HIVE被加载,然后引导HIVE被释放。因为引导HIVE被包含在内核中,所以存在一种情况:如果重新做了一个新内核,引导HIVE中的数据同系统HIVE可能不相同。那么系统该加载哪个版本好呢?为此,CE在生成每个内核时都做了一个标志。而系统HIVE也存在这样一个标志,当加载引导HIVE时,如果引导HIVE和系统HIVE的标志不相同,系统会删除系统HIVE文件,然后重新创建一个文件并从引导HIVE复制数据。
iv. 永久保存注册表数据
Windows CE.NET采用新的注册表保存技术――基于HIVE的注册表,的确让人很兴奋,在这之前基于Windows CE的设备,大多数采用给RAM供电方式来保存注册表数据,虽然也可以通过RegCopyFile函数永久保存,但毕竟启动时还要再热启动一次,有了基于HIVE的技术,启动时系统会自动加载数据,免去了热启动的麻烦,而且当内核更新升级时,你不用担心保存在永久存储器上的系统HIVE文件影响你新的内核,系统会自动判断并删除过时的系统HIVE文件。只有拥有了这样的技术,基于CE的产品才算是一个真正的电脑。
注:关于基于HIVE的注册表的实现,暂不讲解。
下面简单说明 RegCopyFile和RegRestoreFile的用法。
///使用基于RAM的注册表,利用RegCopyFile和RegRestoreFile
///实现永久保存注册表数据。



#include <Pwinreg.h>

#include <Pkfuncs.h>
#include <winbase.h>

CString  strRegBackup = L"//hard disk//RegBackup.reg";
CString  strTmp      = L"//windows//temp.reg";

////////导出。在系统关闭前。 
if(! RegCopyFile(strTmp))     ///导出注册表,用temp.reg做缓冲用。
{
    return FALSE; 
}

if(! CopyFile(strTmp, strRegBackup, FALSE))  ///把temp.reg再复制到RegBackup.reg
{
    return  FALSE;
}

/////////导入。在系统启动时。
if(! CopyFile(strRegBackup, strTmp, FALSE))
{
    return  FALSE;
}

if(! RegRestoreFile(strTmp))  ///恢复注册表
{
    return  FALSE;
}

if(! KernelIoControl(IOCTL_HAL_REBOOT, NULL, 0, NULL, 0, NULL)) ///重新启动
{
    return  FALSE;
}


本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/ymzhou117/archive/2009/11/11/4799873.aspx

Windows键盘失灵代码10:注册表UpperFilters/LowerFilters修复指南 在Windows系统中,注册表作为核心配置数据库,存储着硬件驱动加载的关键信息。驱动加载机制通过UpperFilters(上层过滤器)和LowerFilters(下层过滤器)值构建驱动栈层次结构,确保设备正常工作。当第三方软件(如安全工具或外设管理程序)安装或卸载不当,可能在UpperFilters中残留无效驱动名,导致系统加载驱动栈时失败,引发设备管理器报错“代码10”。这种注册表配置问题常见于键盘、USB设备等输入/输出硬件,表现为设备无法识别或功能异常。本文针对键盘驱动加载失败的具体案例,深入解析Up 阅读详情

相关推荐

11、Windows Embedded CE 启动加载器与注册表深度解析

本文深入解析了 Windows Embedded CE 的启动加载器和注册表机制。详细介绍了 BIOS Loader 等启动加载器的工作原理及配置步骤,并全面剖析了注册表的结构、实现类型及配置方法。同时,还涵盖了注册表刷新策略、常见问题解决方案及组件配置实践,如 FTP 服务器和串口通信的注册表设置。通过合理配置启动加载器与注册表,可以提升系统的稳定性与性能,为 Windows Embedded CE 的开发与调试提供有力支持。

nft7creator的博客 160

EVC开发实例二:保存信息(二)

 [ 本文属于第32期, 适合中级读者 ] EVC开发实例二:保存信息(二)作者:付林林保存到注册表中这一章主要讲解Windows CE.NET下注册表相关技术。1、 对象存储(object store)  对象存储是Windows CE默认的数据存储机制。任何新创建的内核中都默认包含对象存储器。对象存储的实质是在RAM中创建一个文件系统,将文件保存在R

585

改进版wince注册表编辑器:系统性能优化与应用

Windows CE 是微软开发的一种实时操作系统,主要针对移动和嵌入式设备。其小巧的体积、高效的任务管理能力以及灵活的可定制性,使其成为各种小型智能设备的首选操作系统。注册表是Windows操作系统中一个重要的数据库,它用于存储系统和应用程序的配置信息。在Windows CE系统中,注册表的作用同样不可忽视。它负责记录系统的各种设置和选项,包括硬件配置、系统参数以及安装的软件信息。

weixin_36212459的博客 432

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

作者:蒙洋,华清远见嵌入式学院讲师。引言:Windows CE作为一种嵌入式的操作系统,已经有了10多年的历史,从最早的1.0版本到如今的最新的6.0版本。Windows CE已经在嵌入式操作系统领域占据了非常重要的地位,同时还派生出了很多不同的版本,应用到不同的领域,Windows Mobilej就是其中非常成功的一个版本。作为一种嵌入式操作系统,我们有必要了解它的启动过程和加载机制

华清远见 | 程序员的学习天堂 1845

远程编辑WINCE注册表工具:系统管理员与开发者的利器

WINCE远程访问注册表工具是一个专门为Windows CE操作系统设计的应用程序,允许开发者和IT专业人员远程访问和管理设备的注册表。这个工具的出现极大地简化了在不同设备上配置和维护注册表的过程,特别是对于需要在多台设备上执行相同注册表更改的场景。Windows Mobile设备中心软件是一种为移动设备和PC之间提供同步和数据管理功能的工具。它通常预装在Windows操作系统上,旨在简化设备设置和数据传输过程。界面布局。

weixin_35749796的博客 1227

战地2网吧快速装机解决方案:注册表应用详解

战地2(Battlefield 2)是由瑞典游戏公司Digital Illusions CE开发的一款第一人称射击游戏,作为战地系列的第四部作品,于2005年首次发行。该游戏具有鲜明的现代战争特色,玩家可以加入各国军队,体验逼真的战场。它的多人大型在线模式是其最显著的特点之一,使得战地2在推出后广受欢迎,成为电竞界和玩家社区的热点游戏。注册表(Registry)是Windows操作系统中用来存储配置数据和系统设置的层次结构数据库。

weixin_36173034的博客 516

Windows CE: Save and Restore the Registry

 In other posts, I have discussed persistent registry (Windows CE: Persisting Registry Changes from an Application) but what if we want to set the registry back to some known point? There are some f

strliu的专栏 1025

wince6系统备份

备份wince6操作系统,wince5升级及wince6的模拟器加载此系统

企业级数据保护:Windows Server 2008备份与恢复的7个关键步骤

本文详细介绍了Windows Server 2008备份与恢复的7个关键步骤,帮助企业构建高效的数据保护体系。从备份环境准备、策略设计到实战操作和灾难恢复演练,全面覆盖企业级数据保护需求,确保数据安全与业务连续性。

weixin_29235525的博客 113

WinCE系统15个工具打包

WinCE系统15个工具打包,里面都是非常实用的软件,也适合wm系统。

进WINCE系统工具,tpcupdateu,车载导航一体机进win ce系统

车载导航一体机进win ce系统,进WINCE系统工具

WINCE基于hive注册表的实现

********************************LoongEmbedded******************************** 作者:LoongEmbedded(kandi) 时间:2010.12.26 类别:WINCE嵌入操作系统 ********************************LoongEmbedded********************

lqxandroid2012的专栏 861

网上能找到的所有WINCE软件都在这里了,打包一次性下载完

里面有车机导航wince小软件,还有pda小软件,中英文网址能找到的所有资源,都在这里了

Windows CE Registry

Moved to http://blog.tangcs.com/2008/06/09/wince-registry/ 转载于:https://www.cnblogs.com/WarrenTang/archive/2008/06/09/1216287.html

weixin_30312563的博客 163

【5G NB-IoT NTN】3GPP R17 NB-IoT NTN介绍_nbiot ntn

你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!” />你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!更多资料点击此处获qu!!

2401_83703866的博客 3165

基于AXI PCIE IP的FPGA PCIE卡示意图

如果在上图中的AXI互联IP上再连接一个带AXI Slave接口的BRAM控制器,这个BRAM控制器连接一个BRAM,Host PC在系统主存中分配了一些不连续的内存,Host PC可以将这些内存段的起始地址(当然要先转为PCIE总线地址)写到AXI总线上的BRAM中,这样AXI CDMA读取BRAM,将读取到的PCIE总线基地址写到AXIPCIE寄存器块中的AXIBAR2PCIEBAR_n寄存器中,这样就实现了SG DMA。通过动态改变AXIBAR2PCIEBAR_n寄存器的值,可以实现多通道DMA。

csdn_gddf102384398的博客 1624

关于wince注册表

作者:menuconfig 转自:http://blog.youkuaiyun.com/menuconfig/article/details/3765667 与桌面Windows一样,Windows CE也使用注册表(Registry)来保存应用程序、驱动程序和用户的设定以及其他一些配置信息。Windows CE注册表也采用树形结构来管理配置信息,由于Windows CE注册表的结构和功能

老瓦的笔记本 705

C++中为什么要引入引用变量?

C++引用机制的设计哲学在于平衡性能与安全性。它解决了指针的三个痛点:语法噪音、空指针风险和语义模糊,同时保持了指针的效率优势。引用必须绑定有效对象且不可重绑定的特性增强了安全性,其值语义语法更直观。尤其在运算符重载和const引用场景中,引用展现了不可替代的优势。本质上,引用是编译器优化的指针实现,体现了C++"零开销抽象"的核心思想——既保持底层性能,又提供高级抽象。这种设计允许开发者根据场景灵活选择指针或引用,反映了C++多范式共存的语言智慧。

教学 & 技术专栏 175

基于WinCE的嵌入式系统注册表的研究(转载)

摘要:本文首先讲述了Windows CE注册表的重要性,它对整个嵌入式系统的正常运行起着关键性作用。然后又介绍了两种注册表存储方式,并着重讲述了基于HIVE的注册表。详细阐述了基于HIVE的注册表的保存数据方式及实现HIVE注册表的方法。最后给出了系统成功修改注册表的实现方法。本文的研究对其它操作系统的注册表修改也具有着借鉴意义。 关键词:Windows CE;注册表;HIVE;信息存储 ...

weixin_30677475的博客 178

运算放大器测试方法-输入失调电压

由于运放输入回路的不对称性,在输入端将产生一定的误差信号,从而限制运放信号灵敏度。通常用输入失调电压(VOS)、输入失调电流(Ios)和输入偏置电流(IB)表示。运放有四个主要特征:输入失调特征、开环特征、共模特征及输出特征。其放大倍数较大,由于外界的影响,即使运放的输入端产生较小的输入信号,经过放大,在输出端也会产生较大的误差。为能精确测量其性能,一般采用辅助运放进行测试。下面着重讲了运放的主要参数及如何精确测量这些参数。文中DUT代表被测运放,A代表辅助运放。

weixin_46135931的博客 1万+

AI变现案例实战系列4:AI数字员工团队——用OpenClaw搭建6个智能体,自动运营你的赚钱系统

摘要:谷歌AI产品经理Shubham Saboo利用OpenClaw搭建6人AI团队,实现内容创作、技术开发等任务自动化,每月成本不足400美元。文章对比阿里云和Windows本地两种部署方案,提供详细配置指南。通过多Agent架构实现物理隔离与精准协作,可创建6个专业AI角色(如研究员、运营、工程师等),每个Agent专注单一任务,避免记忆负担和上下文污染问题。阿里云方案适合长期稳定运行,Windows本地部署则适合零成本测试。最终可组建高效AI团队,实现7x24小时无人值守运营。(149字)

小明的博客 1141

Windows EFS加密文件突然打不开?3个步骤教你恢复访问权限

本文详细介绍了Windows EFS加密文件突然无法访问的三种恢复方案,包括用户账户切换、证书备份还原和系统级数据抢救。通过实战案例和操作指南,帮助用户有效解决EFS加密文件访问问题,确保数据安全。

weixin_30555125的博客 538

开源收银系统_大型收银系统源码_OctShop

开源收银系统正成为大型连锁企业数字化转型的关键工具。相比传统闭源系统,开源方案具有成本低(年均降本60%+)、定制灵活(支持多业态协同)、自主可控等优势,能有效解决高并发、多门店数据同步等痛点。核心价值在于:1)分布式架构适配规模化扩张;2)模块化设计实现个性化开发;3)开放接口打通ERP/CRM等系统。典型案例显示,连锁商超通过源码二次开发实现库存实时同步,补货效率提升50%;餐饮集团统一多业态收银流程后会员复购率增长35%。选型需关注源码成熟度、技术兼容性和安全合规,建议采用"开源+服务商&q

OctShop全栈工程师 938
上一篇: 判断WinCE的版本
下一篇: WINCE里如何预设WIFI IP和WIFI的相关登录设置?
menuconfig
博客等级 码龄19年 713粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值