关于驱动和设备的相关的注册表键的位置,和相关信息
关于驱动和设备的相关的注册表键的位置,和相关信息
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
orIoOpenDeviceRegistryKe
y. 用户模式的安装组件用这两个函数访问,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
关于驱动和设备的相关的注册表键的位置,和相关信息相关推荐
- SQL Server管理相关的注册表技巧
SQL Server管理相关的注册表技巧 2010-10-20 17:14 佚名 SQL Server的管理和Windows的管理是息息相关的,通过Windows的注册表可以让SQL Server管理 ...
- Windows 危险的注册表键
windows注册表修改大全 1.Run HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run HKEY_LOCAL_MACH ...
- Windows注册表中保存的信息及环境变量中SystemRoot在注册表中的位置
Windows注册表中的几个分项分别是什么 HKEY_LOCAL_MACHINE 是机器硬件信息的集散地 HKEY_CURRENT_USER 当前用户所用信息的储存地 HKEY_CLASSES_ROO ...
- 控制Open With菜单项的注册表键值
当右键单击一个文件的时候, 你会发现有一个菜单项叫做Open With. 为了说明问题, 我们在这里使用.xyz文件类型, xyzfile作为.xyz文件的ProgID. 某种文件的Open With ...
- 求助:Windows Service 读取注册表键值
最近项目需要程序监控记录用户使用和打开的文件,于是做了一个使用Windows Service监控Recent文件夹中文件增加和更改的程序, 但是需要在服务程序确定Recent文件夹的路径,使用Regi ...
- VC删除注册表键值项
2019独角兽企业重金招聘Python工程师标准>>> VC删除注册表键值项. HKEY hkResult; HKEY hKey=NULL; TCHAR lpFilename[MAX ...
- navicat提权及星外主机注册表mssql密码位置
星外主机注册表mssql密码位置 1.HKEY_LOCAL_MACHINE\SYSTEM\LIWEIWENSOFT\INSTALLFREEADMIN\11 2.HKEY_LOCAL_MACHINE\S ...
- Inno setup 访问注册表键值,获取软件安装路径
; 脚本由 Inno Setup 脚本向导 生成! ; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档! [Setup] ; 注: AppId的值为单独标识该应用程序. ; 不要为其 ...
- 注册表键值明明存在OpenSubKey始终返回null,解决方案
注册表键值明明存在OpenSubKey始终返回null,解决方案 参考文章: (1)注册表键值明明存在OpenSubKey始终返回null,解决方案 (2)https://www.cnblogs.co ...
最新文章
- python cookbook 中文版 第 3 版-《Python Cookbook》第三版中文版
- 微信公众号开发入门教程第一篇
- Python判断字符串是否xx开始或结尾
- 华为端到端项目管理流程_【达睿原创】供应链端到端管理 – 看华为是怎么做的...
- 源码包编译PHP5.6,源码编译安装php5.6
- 你好,C++(34)有一只叫做多利的羊 6.2.4 拷贝构造函数
- mysql 创建初始化帐号_MySQL创建SCOTT用户及初始化数据
- 半夜闲的真是蛋疼。。。决定写个小博文
- 【清单】语言、框架及库的官方文档、examples、tutorials
- DBeaver连接mysql驱动下载失败怎么办?
- java程序员就业发展方向_Java程序员有哪些职业发展方向?
- MIF/MID数据格式说明
- 带图像识别的YYS连点器 V2.0
- excel中的联系方式导入手机电话簿
- php 图片底色替换,手把手教你替换相片中的颜色(给相片换底色)
- 用计算机怎么打出箭头,怎么打出箭头
- java 实现写出倒立三角形的几种方法
- switch()语句中,default,break关键字作用,以及贯穿问题
- 手游平台搭建技术对接文档
- 忘记Win7登录密码的解决办法