[轉貼]關於Windows2000和XP的REGISTRY



贊助商連結


carloschen
2002-01-20, 08:45 AM
這是我朋友轉寄來的,覺得還不錯,也許有些人已經看過,但我還是貼出來分享一下!!

WINDOWS2000和XP的系統登錄是以一種向下的結構來組織成四個階層:
一、HIVE KEYS(群機碼):
一共有五個系統所定義的HIVE KEYS, 其名稱的第一個部份都是HKEY_。
這五個群機碼就是:HKEY_LOCAL_MACHINE
HKEY_CURRENT_USER
HKEY_CLASSES_ROOT
HLEY_USERS
HKEY_CURRENT_CONFIG

二、KEYS(機碼):
可分為使用者定義的KEYS和系統定義的KEYS, 沒有特定的命名格式,同時存在
於HIVE KEYS的子目錄中。

三、SUBKEYS(子機碼):
具有使用者定義的SUBKEYS。亦無特定的命名格式,存在於使用者定義的KEYS和
系統定義的KEYS的子目錄中。
(備註)KEYS和SUBKEYS只提供組織資料存取之用。

四、values(值):
   這個階層的元件位在整個鏈結的未端(有點像是拆了三層包裝後,才發現禮物是
   什麼@@^^),其中更包含了用於電腦和其應用程式性能表現上的實際資料。



現在,我們就來看看這五個HKEY_所包含的資訊是什麼,看看他們是怎麼和2000及XP系統
產生互動的。

一、HKEY_LOCAL_MACHINE
這個群機碼包含了OS和硬體結構資料,像是BUS型式、可用的系統記憶體、哪一個
驅動程式已經登進載入、和啟動控制資等。它包含了在系統登錄上的絕大部份資料。

二、HKEY_CURRENT_USER
這個群機碼包含了目前登入的使用者的基本資料。其子機碼包含了環境變數、個人程
式群、桌面設定、網路連結、印表機和應用程式設定項目。這個透過和HKEY_USER的
安全身份(SID)子機碼來作對應,並提供給目前的使用者來使用。

三、HKEY_CLASSES_ROOT
它的子機碼列出了所有目前登錄在電腦中的COM(元件)伺服器和所有與目前應用程式
相關的延伸檔案。
備註:這項資料是由HKEY_LOCAL_MACHINE\SOFTWARE\Classes子機碼對應而來。

四、HKEY_USERS
這個群機碼中的SUBKEYS包含了所有使用者的資料。每一個使用者擁有兩個子機碼,一
個經由使用者的SID對應至HKEY_CURRENT_USER,而另一個子機碼包含了在使用者登錄
之前所使用的資料===>HKEY_USER\DEFAULT。

五、HKEY_CURRENT_CONFIG
這個群機碼的子機碼列出了目前電腦所使用的所有硬體的檔案資料。
備註:這項資料是由HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet子機碼對應而來。


由以上五點,我們可以發現,HKEY_CLASSES_ROOT和HKEY_CURRENT_CONFIG這兩個群機碼是由
HKEY_LOCAL_MACHINE對應延申而來的,所以,嚴格說起來,2000和XP的群機碼應該只有三個,就
是HKEY_LOCAL_MACHINE、HKEY_CURRENT_USER和HKEY_USERS。


下面我們再來談談2000和XP的資料型式。
由於REGISTRY就像是一種小型的關聯式資料庫,所以,這個資料庫也必須透過一種嚴謹的資料型
式來作聯結。鄙人目前所辨識出來的共有十一種:

1、資料型式:REG_REXOURCE_REQUREMENTS_LIST 原始型式:字串 功能:硬體ID

2、資料型式:REG_FULL_RESOURCE_DESCRIPTOR 原始型式:字串 功能:硬體ID

3、資料型式:REG_RESOURCE_LOST 原始型式:字串   功能:硬體清單

4、資料型式:REG_MULTI_SZ 原始型式:多重字串 功能:字串陣列

5、資料型式:REG_LING 原始型式:字串 功能:檔案路徑 

6、資料型式:REG_DWORD_BIG_ENDING 原始型式:數字 功能:非Intel數字

7、資料型式:REG_DWORD 原始型式:數字 功能:數字資料

8、資料型式:REG_BINARY 原始型式:二進位 功能:二進位資料

9、資料型式:REG_SZ 原始型式:字串 功能:文字字元(無變數)

10、資料型式:REG_EXPAND_SZ 原始型式:字串   功能:俱變數的文字字元

11、資料型式:REG_NONE 原始型式:未知 功能:譯碼資料

每一種原始型在REGEDIT32.EXE中都有特定的編緝器,分別是字串、多重字串、二進位和DWORD這些編
緝器。