INF文件中的HKR

最近在學習驅動編程的INF文件格式時,在AddReg等directive中有很多與註冊表相關的內容,現總結如下:

HKCR代表HKEY_CLASSES_ROOT;
HKCU代表HKEY_CURRENT_USER;
HKLM代表HKEY_LOCAL_MACHINE
HKU代表HKEY_USERS
比較麻煩的是HKR,該縮寫代表那個註冊表鍵值的縮寫呢?通過查詢幫助文檔可以發現如下解釋:

(1)在DDInstall section中,HKR縮寫表示的是設備的software key(軟件子鍵),具體註冊表鍵值是:
HKLM/SYSTEM/CurrentControlSet/Control/Class/%ClassGuid%/%DeviceIndex%
其中ClassGuid是設備類的GUID,DeviceIndex是設備序號,如果PC中有多於一個的同類設備,序號會順序排列下去0000、0001、0002……

(2)在DDInstall.HW section中,HKR縮寫表示的是設備的hardware key(硬件子鍵),具體註冊表鍵值是:
HKLM/SYSTEM/CurrentControlSet/Enum/enumerator/deviceID,其中enumerator是設備類別,deviceID是設備的id號

(3)在DDInstall.Services section中,HKR縮寫表示的是Services key(服務子鍵),具體註冊表鍵值是:
HKLM/SYSTEM/CurrentControlSet/Service

(4)在DDInstall.Interfaces section中,一般在用AddInterface Directive來進行和註冊表相關的操作時會用的HKR,這時HKR縮寫表示HKLM/SYSTEM/CurrentControlSet/Control/DeviceClasses/%InterfaceClassGUID%/ branch,其中InterfaceClassGUID由AddInterface Directive的第一個參數指定,branch由AddInterface Directive的第二個參數指定。

(5)在ClassInstall32 section中,有時候也會出現HKR,這時HKR縮寫表示HKLM/SYSTEM/CurrentControlSet/Control/Class/%ClassGUID%,其中ClassGuid是設備類的GUID。

另外在編寫INF時,有時候會用一些整數來表示特定的路徑,如:

10 = C:/Windows(即windows目錄)
11 = C:/Windows/system32(即windows系統目錄)
12 = C:/Windows/system32/drivers (即windows驅動目錄)

當然對於不同的系統有一些細微的差別,但是大體上就是這樣的,以上是按本人的機子進行說明的,我的機子上安裝的是Vista系統。

發佈了5 篇原創文章 · 獲贊 6 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章