zoukankan      html  css  js  c++  java
  • WinCE注册表简介

    在WinCE中支持两种类型的注册表:RAM-Based和HIVE-Based,默认情况下使用的是RAM-Based注册表。

    1.RAM-Based注册表

      RAM-Based的注册表是将所有的注册表数据存储在对象存储(object store)中,也就是存放在RAM里面。一般用在有电池备份RAM的系统上面,也就是说,当系统掉电以后,会自动切换成电池供电,此时RAM还有供电,所以上面的数据不会丢失,这样采用RAM-Based注册表非常有效。

      RAM-Based注册表多用于经常热启动(Warm Boot)的设备上面,很少用在冷启动(Cold Boot)设备上面。

    2.HIVE-Based注册表

      HIVE-Based的注册表是将注册表数据存成文件,也就是存在掉电不会丢失数据的磁盘上面,HIVE注册表被分成两部分:系统Hive和用户Hive,也就是system.hv和user.hv。在一个多用户系统中,会包含多个用户Hive,不同的用户Hive(user.hv)会在该用户登陆的时候被加载,被注销的时候卸载。

      实际上HIVE-Based的注册表包含三个部分,我称之为引导Hive,系统Hive和用户Hive,也就是Boot.hv,system.hv和user.hv。Boot.hv主要用于系统引导时候所需的注册表设置,这部分设置不会被保存在磁盘上面,也就是说,在系统掉电以后就会丢失。实际上,这部分应该说是属于RAM-Based注册表,由于这部分数据不需要改动,所以也就无所谓了。System.hv存放关于系统的注册表设置,user.hv存放和用户相关的注册表设置。

      一般在我们编译WinCE系统的时候,Platform Builder会根据platform.reg文件中的注释标签来判断哪些注册表设置放入boot.hv中,凡是在注释标签”;HIVE BOOT SECTON”和”;END HIVE BOOT SECTION”之间的设置都会被放入boot.hv中,其他的都会放到default.hv和user.hv中。

    在WinCE第一次引导的时候,所有的.hv都会被放到RAM中,WinCE系统会首先读取boot.hv进行相关引导时候的设置,然后把default.hv和user.hv放到磁盘的指定路径下面,这个路径也是在注册表中设置的,然后default.hv会被重命名为system.hv。当系统第二次启动的时候,会比较磁盘上的.hv和内存中的.hv是否一致,如果不一致,会拷贝磁盘上面的.hv到内存中。

      我们可以看出,实际上HIVE注册表在运行的时候也是放在RAM中的,这样速度比较快。启动的时候会从磁盘上读出,在用户更改注册表以后,会被保存在磁盘上,保存的时机也是可以设置的,可以选择在用户更改后立刻保存到磁盘上,也可以选择在reboot的时候保存。

  • 相关阅读:
    解决成本的错误和问题
    DQM Serial Sync Index Program ERROR
    客户信用控制请求
    现有量,在途量,可用量,可保留量
    作为一位Vue工程师,这些开发技巧你都会吗?
    vue父子组件状态同步的最佳方式续章(v-model篇)
    vue-grid-layout拖拽布局实现空位添加新元素
    小程序保存图片到本地
    为 React 开发人员推荐 8 个测试工具、库和框架
    Deno会在短期内取代Node吗?
  • 原文地址:https://www.cnblogs.com/wenziqi/p/1807534.html
Copyright © 2011-2022 走看看