winCE 登錄檔相關討論

2021-05-10 14:12:49 字數 1408 閱讀 5848

儲存到登錄檔中

這一章主要講解windows ce.net下登錄檔相關技術。

1、 物件儲存(object store)

物件儲存是windows ce預設的資料儲存機制。任何新建立的核心中都預設包含物件儲存器。物件儲存的實質是在ram中建立乙個檔案系統,將檔案儲存在ram中,這些檔案**於rom。當裝置啟動時,引導程式將rom中的核心檔案解壓並存放在ram中。"/windows"目錄就是基於物件儲存的。物件儲存的特點是檔案可以壓縮、支援事務機制(和資料庫中的事務機制相似)、資料i/o相對較快。

3、ce下登錄檔型別

分為基於ram的登錄檔和基於hive的登錄檔。

a、基於ram的登錄檔,也叫基於物件儲存(oject storage)的登錄檔。用於將登錄檔資料全部儲存在ram中。

b、 基於hive的登錄檔。用於將登錄檔資料全部或部分儲存到永久儲存器上。

iv. 永久儲存登錄檔資料

windows ce.net採用新的登錄檔儲存技術――基於hive的登錄檔,的確讓人很興奮,在這之前基於windows ce的裝置,大多數採用給ram供電方式來儲存登錄檔資料,雖然也可以通過regcopyfile函式永久儲存,但畢竟啟動時還要再熱啟動一次,有了基於hive的技術,啟動時系統會自動載入資料,免去了熱啟動的麻煩,而且當核心更新公升級時,你不用擔心儲存在永久儲存器上的系統hive檔案影響你新的核心,系統會自動判斷並刪除過時的系統hive檔案。只有擁有了這樣的技術,基於ce的產品才算是乙個真正的電腦。

注:關於基於hive的登錄檔的實現,暫不講解。

下面簡單說明 regcopyfile和regrestorefile的用法。

///使用基於ram的登錄檔,利用regcopyfile和regrestorefile

///實現永久儲存登錄檔資料。

#include #include cstring  strregbackup = l"//hard disk//regbackup.reg";

cstring strtmp = l"//windows//temp.reg";

匯出。在系統關閉前。

if(! regcopyfile(strtmp)) ///匯出登錄檔,用temp.reg做緩衝用。

if(! copyfile(strtmp, strregbackup, false)) ///把temp.reg再複製到regbackup.reg

/匯入。在系統啟動時。

if(! copyfile(strregbackup, strtmp, false))

if(! regrestorefile(strtmp)) ///恢復登錄檔

if(! kerneliocontrol(ioctl_hal_reboot, null, 0, null, 0, null)) ///重新啟動

901 2幾個登錄檔相關函式

1 建立或開啟登錄檔 regcreatekeyex long winapi regcreatekeyex in hkey hkey,in lpctstr lpsubkey,dword reserved,in lptstr lpclass,in dword dwoptions,in regsam sa...

901 1登錄檔相應操作

很老的技術,只為入門 木馬自啟動的三種方式 1 登錄檔鍵值 hkey local machine software microsoft windows currentversion run hkey current user software microsoft windows currentver...

WINCE 讀寫登錄檔操作

include hkey g hkey null h 檔案 void openfile wchar pfilepath,bool nflag 0 long readfile wchar pregkey,byte preadbuf,dword nreadlen,dword dwtype long wr...