<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > WinCE的嵌入式系統(tǒng)注冊(cè)表的研究

          WinCE的嵌入式系統(tǒng)注冊(cè)表的研究

          作者: 時(shí)間:2010-04-07 來(lái)源:網(wǎng)絡(luò) 收藏

            摘要:本文首先講述了 Windows CE的重要性,它對(duì)整個(gè)的正常運(yùn)行起著關(guān)鍵性作用。然后又介紹了兩種存儲(chǔ)方式,并著重講述了基于 HIVE的。詳細(xì)闡述了基于 HIVE的注冊(cè)表的保存數(shù)據(jù)方式及實(shí)現(xiàn) HIVE注冊(cè)表的方法。最后給出了成功修改注冊(cè)表的實(shí)現(xiàn)方法。本文的對(duì)其它操作的注冊(cè)表修改也具有著借鑒意義。

          本文引用地址:http://www.ex-cimer.com/article/151963.htm

            0 引言

            操作系統(tǒng) Windows CE和桌面操作系統(tǒng)一樣使用注冊(cè)表(Registry)來(lái)保存應(yīng)用程序、驅(qū)動(dòng)程序和用戶的設(shè)定以及其他一些配置信息,通常還存儲(chǔ)著操作系統(tǒng)調(diào)用程序的狀態(tài)信息,所以注冊(cè)表起著非常重要的作用,它是 Windows CE操作系統(tǒng)的核心。在沒(méi)有注冊(cè)表的情況下,操作系統(tǒng)將不能獲得必需的信息來(lái)運(yùn)行和控制附屬的設(shè)備和應(yīng)用程序及正確響應(yīng)用戶的輸入[1][2]。

            1 Windows CE注冊(cè)表簡(jiǎn)介

            Windows CE的注冊(cè)表結(jié)構(gòu)和其他版本的 Windows操作系統(tǒng)的注冊(cè)表結(jié)構(gòu)是類似的。注冊(cè)表是一個(gè)包括主關(guān)鍵字子樹的集合,它和文件目錄樹一樣具有層次結(jié)構(gòu)。每個(gè)子樹又由更低層的子樹、鍵以及鍵值組成。鍵相當(dāng)于文件系統(tǒng)的目錄,每個(gè)鍵包含若干鍵值項(xiàng)。而鍵值項(xiàng)相當(dāng)于文件系統(tǒng)末端的文件,它由鍵值名、數(shù)據(jù)類型和鍵值組成。鍵值就是注冊(cè)表存儲(chǔ)的數(shù)據(jù)。

            Windows CE對(duì)注冊(cè)表的值有一些限制:鍵或者鍵值項(xiàng)的名字最多為 255個(gè)字符,數(shù)據(jù)最大為4K,鍵嵌套層次最多為 16層。所以在使用注冊(cè)表編程時(shí),要盡量使鍵和鍵值項(xiàng)占用最小的空間。另外,需要注意的是,在注冊(cè)表中,鍵值項(xiàng)比鍵值占用更大的存儲(chǔ)空間。

            Windows CE注冊(cè)表包括4個(gè)根鍵 [2],如表1所示。

            表 1 Windows CE注冊(cè)表根鍵


            2 Windows CE注冊(cè)表類型

            由于系統(tǒng)的特點(diǎn),一些嵌入式設(shè)備是沒(méi)有外存的。因此 Windows CE的注冊(cè)表提供了兩種實(shí)現(xiàn)方式:基于對(duì)象存儲(chǔ)的注冊(cè)表(RAM-Based Registry)和基于 Hive的注冊(cè)表(Hive-Based Registry) [3]。我們可以在 Windows CE中使用任何一種注冊(cè)表,注冊(cè)表類型對(duì)于用戶和應(yīng)用程序來(lái)說(shuō)都是透明的?;赗AM的注冊(cè)表在經(jīng)常熱啟動(dòng)的設(shè)備上是非常高效的,而在經(jīng)常冷啟動(dòng)的設(shè)備上,性能卻很令人失望,最適合有電池后備的個(gè)人電子消費(fèi)類產(chǎn)品。對(duì)于經(jīng)常冷啟動(dòng)或者不怎么使用熱啟動(dòng)方式的設(shè)備來(lái)說(shuō),基于 hive的注冊(cè)表是非常高效的,最適合永久性的存儲(chǔ)器和多用戶環(huán)境下使用。

            2.1 基于 RAM的注冊(cè)表

            顧名思義,基于 RAM的注冊(cè)表把整個(gè)注冊(cè)表作為一個(gè)對(duì)象存儲(chǔ)堆放在 RAM中。這就意味著如果系統(tǒng)中斷對(duì) RAM的電池供電,對(duì)注冊(cè)表的所有改動(dòng)都會(huì)丟失。也就是說(shuō),它們的有效性和 RAM中數(shù)據(jù)的有效性是一致的。但是使用 RAM注冊(cè)表,對(duì)注冊(cè)表的讀寫訪問(wèn)操作非常的快速高效。在舊版本的 Windows CE中,大量應(yīng)用了基于 RAM的注冊(cè)表。如果有外存且需要經(jīng)常冷啟動(dòng)的設(shè)備采用基于 RAM的注冊(cè)表,則需要在系統(tǒng)斷電的時(shí)候?qū)ψ?cè)表進(jìn)行保存,等系統(tǒng)再次啟動(dòng)時(shí)對(duì)保存的注冊(cè)表進(jìn)行還原。

            2.2 基于 HIVE的注冊(cè)表

            HIVE系統(tǒng)包含了不屬于任何用戶信息的系統(tǒng)設(shè)置。HIVE系統(tǒng)由 OEM層調(diào)用。通常 hive文件為System.hv,但是它的存儲(chǔ)位置可能隨著平臺(tái)而變化。這種存儲(chǔ)方式使系統(tǒng)在斷電前后無(wú)須備份和恢復(fù)注冊(cè)表數(shù)據(jù),這使得系統(tǒng)冷啟動(dòng)時(shí)速度更快。

            基于HIVE結(jié)構(gòu)的注冊(cè)表被分為兩部分存儲(chǔ):系統(tǒng)HIVE,存儲(chǔ)所有的系統(tǒng)數(shù)據(jù);用戶HIVE,存儲(chǔ)對(duì)特定用戶的所有相關(guān)數(shù)據(jù)。一個(gè)多用戶系統(tǒng)將包括幾個(gè)用戶HIVE。當(dāng)一個(gè)用戶登錄時(shí),相應(yīng)的用戶 HIVE就會(huì)被激活,當(dāng)用戶退出時(shí),相應(yīng)的用戶 HIVE也會(huì)被撤銷。所有的用戶 HIVE都用 USER.hv來(lái)命名,并且被放在不同的用戶目錄中,每個(gè)目錄都是以它屬于的用戶的用戶名來(lái)命名的。

            注冊(cè)表中的HKEY_LOCAL_MACHINEinitBootVars下的鍵值項(xiàng)ProfileDir存儲(chǔ)著所有用戶目錄的位置。HKEY_LOCAL_MACHINEinitBootVars下的鍵值項(xiàng) SystemHive存儲(chǔ)著系統(tǒng)HIVE的文件路徑和文件名。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁(yè) 1 2 3 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();