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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章