儲存到登錄檔中
這一章主要講解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...