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

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

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

  1. SQL Server管理相关的注册表技巧

    SQL Server管理相关的注册表技巧 2010-10-20 17:14 佚名 SQL Server的管理和Windows的管理是息息相关的,通过Windows的注册表可以让SQL Server管理 ...

  2. Windows 危险的注册表键

    windows注册表修改大全 1.Run HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run HKEY_LOCAL_MACH ...

  3. Windows注册表中保存的信息及环境变量中SystemRoot在注册表中的位置

    Windows注册表中的几个分项分别是什么 HKEY_LOCAL_MACHINE 是机器硬件信息的集散地 HKEY_CURRENT_USER 当前用户所用信息的储存地 HKEY_CLASSES_ROO ...

  4. 控制Open With菜单项的注册表键值

    当右键单击一个文件的时候, 你会发现有一个菜单项叫做Open With. 为了说明问题, 我们在这里使用.xyz文件类型, xyzfile作为.xyz文件的ProgID. 某种文件的Open With ...

  5. 求助:Windows Service 读取注册表键值

    最近项目需要程序监控记录用户使用和打开的文件,于是做了一个使用Windows Service监控Recent文件夹中文件增加和更改的程序, 但是需要在服务程序确定Recent文件夹的路径,使用Regi ...

  6. VC删除注册表键值项

    2019独角兽企业重金招聘Python工程师标准>>> VC删除注册表键值项. HKEY hkResult; HKEY hKey=NULL; TCHAR lpFilename[MAX ...

  7. navicat提权及星外主机注册表mssql密码位置

    星外主机注册表mssql密码位置 1.HKEY_LOCAL_MACHINE\SYSTEM\LIWEIWENSOFT\INSTALLFREEADMIN\11 2.HKEY_LOCAL_MACHINE\S ...

  8. Inno setup 访问注册表键值,获取软件安装路径

    ; 脚本由 Inno Setup 脚本向导 生成! ; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档! [Setup] ; 注: AppId的值为单独标识该应用程序. ; 不要为其 ...

  9. 注册表键值明明存在OpenSubKey始终返回null,解决方案

    注册表键值明明存在OpenSubKey始终返回null,解决方案 参考文章: (1)注册表键值明明存在OpenSubKey始终返回null,解决方案 (2)https://www.cnblogs.co ...

最新文章

  1. python cookbook 中文版 第 3 版-《Python Cookbook》第三版中文版
  2. 微信公众号开发入门教程第一篇
  3. Python判断字符串是否xx开始或结尾
  4. 华为端到端项目管理流程_【达睿原创】供应链端到端管理 – 看华为是怎么做的...
  5. 源码包编译PHP5.6,源码编译安装php5.6
  6. 你好,C++(34)有一只叫做多利的羊 6.2.4 拷贝构造函数
  7. mysql 创建初始化帐号_MySQL创建SCOTT用户及初始化数据
  8. 半夜闲的真是蛋疼。。。决定写个小博文
  9. 【清单】语言、框架及库的官方文档、examples、tutorials
  10. DBeaver连接mysql驱动下载失败怎么办?
  11. java程序员就业发展方向_Java程序员有哪些职业发展方向?
  12. MIF/MID数据格式说明
  13. 带图像识别的YYS连点器 V2.0
  14. excel中的联系方式导入手机电话簿
  15. php 图片底色替换,手把手教你替换相片中的颜色(给相片换底色)
  16. 用计算机怎么打出箭头,怎么打出箭头
  17. java 实现写出倒立三角形的几种方法
  18. switch()语句中,default,break关键字作用,以及贯穿问题
  19. 手游平台搭建技术对接文档
  20. 忘记Win7登录密码的解决办法

热门文章

  1. linux编写php,Linux 下编写一个 PHP 扩展
  2. 计算机公开课课前互动小游戏,心理辅导破冰小游戏(也可用于公开课热身)
  3. 人工智能技术名词解释
  4. 武汉同济OA项目一期验收
  5. 电子罗盘在GPS导航设备中的使用
  6. 北京交通大学计算机系英语,计算机与信息技术学院
  7. win10 win+空格切换输入法;win10删除微软输入法2021-5-5
  8. MediaController类实现视频播放器
  9. 数学公式之求 log2(1+x)-x的积分
  10. 建立和验证一个临床分类系统