登記項的使用
Windows NT組件以下述方法使用登記項。
硬體數據(NTDETECT)啟動Windows NT時,登記項接收易失硬體配置數據——計算機中檢測到的硬體信息。在基於X86的計算機上,NTDE-TECT. COM程式做這些事情。在基於RISC的計算機上,此信息從固件中抽取。
Windows NT核心(NTOSKRNL)啟動期間,Windows NT核心從登記項選取信息,包括要裝入什麼設備驅動程式,以及用什麼次序裝人,核心傳送回它自身的信息,例如著作權號等。
設備驅動程式設備驅動程式也向登記項傳送數據,並從登記項接收裝入和配置參數。性能良好的設備驅動程式告訴登記項它在使用什麼系統資源,例如,硬體中斷或DMA通道。設備驅動程式還報告所發現的配置數據。
管理/配置工具Windows NT還提供大量其它接口,允許管理員修改系統配置數據,例如Control Panel,User Manager和Windows NT Setup。
Setup程式為應用程式或硬體運行Windows NT Setup程式或其它設定程式時,程式可以對登記項增加新的配置數據。
Win16應用程式Windows NT為了與一些應用程式和相關工具(如setup程式)兼容也支持.INI檔案。因為,一些應用程式(特別是16位Windows應用程式)現階段將繼續使用.INI檔案。AUTOEXEC.BAT和CONFIG. SYS檔案也將存在,以提供對MS-DOS和Windows 3. 1套用的兼容。當安裝一個基於Windows 3. 1的套用時,套用的setup程式像在Windows中一樣創建它自己的.INI檔案或在WIN. INI或SYSTEM. INI檔案中創建入口。
但是,這些入口不能在登記項中升級,因為這些套用不知道如何訪問登記項。因此,基本的SYS-TEM.INI, WIN.INI和WINFILE. INI檔案在Windows NT中放於根目錄下。
層次結構
登記項以類似磁碟上的目錄和檔案那樣的層次結構進行組織。
層次 | 說明 |
子樹 | 子樹或子樹關鍵字,類似於磁碟的目錄。登記項有4個預定義的子樹: HKEY_LOCAL_MACHINE,HKEY_USERS,HKEY_CURRENT_USER和HKEY_CLASSES_R00T |
配置元 | 一個配置元是關鍵字、次關鍵字和值的分離體。每個配置元具有一個相應的檔案和LOG檔案。LOG檔案用於保證自動發生關鍵字值的改變。這些檔案在目錄\winnt—root\SYSTEM32\CONFIG.中 |
關鍵字和次關鍵字 | 關鍵字和次關鍵字類似於File Manager中的目錄結構,每個配置元都可以包括關鍵字和次關鍵字,就像目錄可以包含子目錄一樣 |
值項 | 值類似於層次末端的檔案,關鍵字和次關鍵字可以包括一個或多個值。一個值項有三部分:名稱,數據類型和值本身。 |
值數據類型 | REG_DWORD:只允許一個值,它必須是1—8個16進制數字的字串。 REG_SZ:只允許一個值,並且它為要存儲的串作解釋。 REG_EXPAND_SZ:類似於REG—SZ,只是文本可包含可替換的變數。例如在串%SystemRoot%\NTVDM.EXE中,%SystemRoot%可用Windows NT Sys.tem32子目錄的路經替換。 REG_BINARY:只允許一個值,是16進制數字串,每對作為一個位元組值解釋。 REG_MULTI_SZ:允許多個值,每個值作為Multi_SZ的成份解釋,值間用NULL字元分隔。 |
登記項子樹
登記項結構化為4個關鍵字子樹的集合。這些關鍵字包括每個計算機和每個用戶的配置信息。每個計算機信息包括安裝的軟硬體信息,以及特定計算機上的網路設定。每個用戶信息包括桌面設定、軟體選擇和印表機設定。訪問任何關鍵字都要通過以下4個子樹。
(1)HKEY_LOCAL_MACHINE
包括有關本地機器的所有配置信息。這個子樹不管哪個用戶登錄以及使用什麼軟體而保留相同。在這個子樹中的信息由應用程式、設備驅動程式和Windows NT作業系統使用,以確定本地機器的配置數據。其中部分信息用於引導Windows NT。
HKEY_LOCAL_MACHINE關鍵字有5個次關鍵字—Hardware, Security Account Manager(SAM ) , Security, Software和System。其中後4個次關鍵字都看作是配置元,因為,它們在\winnt_root\SYSTEM 32\CONFIG目錄中有相應的檔案。應用程式可以查詢所有5個關鍵字,但只可以對Software和System關鍵字增加信息。
( 2 ) KKEY_ USERS
容納了當前登錄用戶的配置設定和預設的用戶配置檔案。因此,HKEY_USERS關鍵字包括DEFAULT次關鍵字和一個或多個以用戶的SIDS(Windows NT用以識別用戶的安全身份號)為名稱的次關鍵字。DEFAULT關鍵字分配信息給本地機器上的新用戶,它對應的檔案為\winnt _ root \SYS-TEM32\CONFIG目錄下的USERDEF檔案。登記項中每個用戶的信息分別保存在\winnt一root \SYSTEM32 \ CONFIG目錄下的USERxxx和USERxxx. LOG檔案中。當一個用戶登錄時,用戶的配置信息拷貝到HKEY_CURRENT_USER中,直到用戶退出登錄。在這期間,用戶改變的任何設定都記錄在HKEY_CURRENT_USER和HKEY_USERS的相應入口中。
預設情況下,用戶的配置檔案保存在\winnt_root \SYSTEM 32 \CONFIG目錄中,但對於Win-doves NT Advanced Server的域管理,它們可以放在本地機器上或存儲在遠程主機上。
(3)HKEY_CURRENT_USER
當前登錄到機器上用戶的有關信息。這些信息以前是存儲在WIN. INI初始化檔案中。這個子樹有一份拷貝作為單個檔案或配置元存儲在機器上。
當一個用戶登錄時,用戶的安全身份號(SID)與登記項中的已知的SIDS進行比較,如果系統識別了用戶登錄的SID,系統就裝載這個用戶的配置設定;否則,系統使用保存在HKEY_USERS\. DEFAULT中的配置信息。
HKEY_ CURRENT_'USER關鍵字由以下次關鍵字組成:Console、Control Panel、Environment、Keyboard Layout、Network、Printers、ProgramGroups、Software和Windiws 3. 1 Migration。
(4) HKEY_CLASSES_ROOT
這個子樹提供入口來定義資源的類以及與這些類相關的特性。包括軟體配置信息,特別是對象連結與嵌入(OLE)和Windows外殼應用程式使用的信息。每項擴展名與能使用這種類型檔案的套用相聯繫,例如,HKEY_ CLASSES_ ROOT關鍵字中包括.avi,.bmp和.DOC等許多次關鍵字。這個子樹的目的是提供與Windows 3. 1登記資料庫的兼容性。
登記項的編輯
(1)Registry Editor
Registry Editor程式(REGEDT32. EXE)是一種工具,允許管理員查看和操作登記項的配置,它位於\winnt_ root\SYSTEM32目錄中。預設情況下,在Program Manager的任何程式組中都不出現。管理員可以完全控制登記項,並根據需要進行改變,而其他用戶只可以對這個登記項進行讀訪問。管理員可以通過Security選單,在Registry關鍵字上改變許可權。
Registry Editor主要用於幫助查找故障和解決問題。可以存儲登記項的段落到磁碟上,並將其傳送到另一台計算機上,以進行分析。還可以通過網路中的RPC服務,遠程查看登記項。
(2) Win MSD
Registry Editor還可以從WinMSD程式啟動,從Tools選單選擇Registry Editor項。WinMSD是Windows NT的診斷工具,用於查看存放在登記項中的系統配置信息,它位於\winnt_ root \SYS-TEM32目錄中。
(3) Find Key命令
從Registry Editor的View選單中選擇Find Key命令,可以查看登記項的特定關鍵字(但不能查看值項)。關鍵字出現在Registry Editor視窗的左邊格中。查找從當前選擇的關鍵字開始,向下(或向上)開始搜尋所有預定義關鍵字及其所有的子關鍵字。查找過程局限在子樹範圍內,也就是說,在HKEY_ LOCAL_ MACHINE視窗中查找,則不會查找HKEY_CURRENT_USER下的關鍵字。
登記項的完整性
Windows NT通過配置設定來維護登記項的完整性。
配置設定可簡單認為是一組系統參數。Windown NT工作站有兩套配置設定—CurrentCon_trolSet和LastRnownGood (LKG)。好比有兩個CONFIG. SYS檔案。
CurrentControlSet是HKEY_LOCAL_MACHINE子樹中SYSTEM配置元下的一個關鍵字,連結啟動系統的配置設定。這些設定反映當前控制狀態。
LastKnownGood是HKEY_ LOCAL_MACHINE子樹中SYSTEM配置元下Select關鍵字中的一個值項,反映最後一次成功啟動期間使用的配置設定。它起備份作用,用於當前配置不能啟動系統時。當完成登錄後才認為是成功啟動,這時創建LastKnowGood配置。
有兩種途徑使用LKG:自動轉換和手工執行。當啟動期間,任何服務遇到問題時,它將自動地告訴系統轉換用LKG系統參數。如果在啟動選單選擇Windows NT後,迅速按空格鍵,一個新選單又出現,可以從這個選單中選擇一種啟動數據,用當前配置設定還是用LKG來啟動系統。
在\winnt_ root\SYSTEM32\CONFIG目錄中還有一個檔案—SYSTEM.ALT對登記項起維護作品。SYSTEM.ALT是SYSTEM配置元(SYS-TEM檔案)的備份檔案,以防SYSTEM這個檔案存儲在壞扇區上。如果Windows NT在啟動時不能順利獲得系統配置元,它將自動轉去讀SYS-TEM.ALT檔案。