关于驱动和设备的相关的注册表键的位置,和相关信息

关于驱动和设备的相关的注册表键的位置,和相关信息

MSDN上有了: https://msdn.microsoft.com/en-us/library/windows/hardware/ff549815(v=vs.85).aspx

下面是大概翻译整理:
操作系统会将设备和驱动的一些相关重要信息存储进注册表中。
注意:一般驱动程序不允许直接访问以下提到的注册表目录项和键。

1. 设备和驱动的注册表树

以下的注册表树对于驱动开发人员比较值得关注,在注册表的HKLM中:

HKLM\SYSTEM\CurrentControlSet\Services Registry Tree
HKLM\SYSTEM\CurrentControlSet\Control Registry Tree
HKLM\SYSTEM\CurrentControlSet\Enum Registry Tree
HKLM\SYSTEM\CurrentControlSet\HardwareProfiles Registry Tree

注意:HKLM\SYSTEM\CurrentControlSet 下的那些驱动相关的键这这里非常安全,操作系统有相关机制,来保证这些数据的安全性。但是可以用Psexec提权来删除这些键。嘿嘿。

操作系统中的每个服务的信息都存储在HKLM\SYSTEM\CurrentControlSet\Services 下。每个驱动都有HKLM\SYSTEM\CurrentControlSet\Services\DriverName.这样形式的一个键。(DriverName是驱动名)。当驱动程序的DriverEntry被调用时,PNP管理器会将这个注册表路径传进驱动的入口函数的RegistryPath 这个参数中。驱动要存储驱动定义好的全局数据在这个键下。这些全局信息数据在驱动初始化的时候是有作用的。 这个键以下的一些键驱动开发人员需要注意:

ImagePath——– 驱动镜像文件(.sys文件)的路径,windows是通过inf文件中的 ServiceBinary 这个项来创建这个值的。详情参见:https://msdn.microsoft.com/en-us/library/windows/hardware/ff546326(v=vs.85).aspx。这个值一般为,%SystemRoot%\system32\Drivers\DriverName.sys。

Parameters———这个键一般存驱动特定的信息。对于一些类型的驱动,系统希望找到特定的值项。你可以再inf文件中使用AddReg这个项来为这个键下添加新值。

Performance——- 该键会指定关于可选择性能监视的一些信息,这个键下的值,一般是驱动性能DLL的名称和该DLL导出的一些函数名,你在inf文件中可以使用AddReg这个项为这个键添加新值。

HKLM\SYSTEM\CurrentControlSet\Control 注册表树下一般包含了控制系统启动和设备配置的一些信息。以下的子键开发人员需要注意:

Class—–包含了系统上设备安装类的信息。每个安装类都是一个子键,键名一般是安装类的GUID来命名。这些子键下一般包含类安装器,注册了的上层过滤驱动和下层过滤驱动。

CoDeviceInstallers—— 包含了已注册好的特定类的协安装器。

DeviceClasses——–包含了系统上设备接口的一些信息。一个设备接口类对应一个子键。这些子键下的项是注册了的设备接口类的接口实例。

HKLM\SYSTEM\CurrentControlSet\Enum 注册表树下一般包含了设备在系统上的信息。PNP管理器为每个设备创建一个子键,键名称时这样的形式:HKLM\SYSTEM\CurrentControlSet\Enum\Enumerator\deviceID. 其中deviceID就是硬件ID,Enumerator一般是设备的归类,USB,PCI,IDE等等。这些键是表明正在挂载表现在系统上的设备实例,也就是说,当设备插入,这些键才会被创建,设备被拔出,键自动删除。这些键包含了设备描述,硬件ID,兼容ID,资源需求等。

这个Enum树一般被保留给操作系统的组件使用。驱动和应用程序不能直接访问这个树。驱动和用户模式的设备安装组件必须用系统提供的API来访问这个树并从中提取有用的信息。这些API是,驱动用这两个函数访问, IoGetDeviceProperty orIoOpenDeviceRegistryKey. 用户模式的安装组件用这两个函数访问,SetupDiGetDeviceRegistryProperty or SetupDiOpenDevRegKey.

调试驱动的时候可以用注册表编辑器查看这个树的状态。

HKLM\SYSTEM\CurrentControlSet\HardwareProfiles 注册表树包含一些在系统上的硬件资料。

References:
http://zhidao.baidu.com/link?url=z33pyO3ihAxLZXcF_aAPJF6ead-DSaY2J4-paKT3-aLX8vra3E04cFws5ARhWb4LsdFNArAf_ZsixhHLMwkqTq
http://www.codeproject.com/Articles/14500/Detecting-Hardware-Insertion-and-or-Removal

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值