INF文件中的HKR

原文链接地址:http://blog.csdn.net/weiwei22844/article/details/6088889

最近在学习驱动编程的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系统。



原文地址:https://www.cnblogs.com/java20130722/p/3207204.html