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

2023-11-06

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • 具备“记忆”功能的VBA目录选择器

    大家使用任意一款浏览器 例如 Chrome Edge 下载文件时 如果 另存为 对话框选择C Download 那么下次再次使用 另存为 功能 对话框默认显示C Download 而不是根目录 在VBA开发中调用目录选择器并不复杂 但是这个
  • 外部中断和内部中断 硬中断 软中断 中断下半部

    重要声明 以下代码有粘贴 截取他人劳动成果的成分 如有雷同 不胜荣幸 如您不能容忍 请不要独自忍受 weChat iisssssssssii 联系小民 主动删除 中断含义 中断是CPU处理外部突发事件的一个重要技术 它能使CPU在运行过程中
  • Linux 阻塞IO(等待队列)原理及架构

    一 阻塞操作 阻塞操作是指在执行折本操作时 若不能获得自愿 则挂起进程直到满足可操作性的条件后在进行操作 被挂起的进程进入休眠状态 被从调度器的运行队列移走 直到等待的条件被满足 假设recvfrom函数是一个系统调用 阻塞不是低效率 如果
  • 直流电机控制 pwm 和 pid 算法

    下面的文章是我转载的 所以作者若是看到不允许转载 请给我留言或给我邮件 lushiliangcsdn 163 com 我会立即删除 转载原因 这篇文章把pid 算法解释的很详细 我担心以后这篇文章无故删除 才转载到我这边的 谢谢 转载来源于
  • WIN7-L2TP/IPSec 访问网站连接被重置-错误809的解决办法

    开始以为是VPS上服务配置的问题 但是移动设备是连接OK的 所以问题就推到win7系统配置的问题了 因为之前做过优化 所以考虑应该是服务的问题 L2TP属于加密的VPN的一种协议 最初win7是连上之后不能访问 非死不可 国内的可以访问 后
  • 修复nanopi2的SPI无法使用50MHZ传输的问题(S5P4418)

    关于S5P4418使用SPI DMA传输时出现的超时问题 一 问题背景 二 启用SPI的DMA传输 2 1 修改cfg main h 文件 2 2 make menuconfig 配置SPI 2 3 修改SPI主机驱动代码 2 4 增加设备
  • 桌面右键加入“用管理员权限运行命令行”DOS

    在桌面右键和文件夹空白处右键中加入 用管理员权限运行命令行 DOS Windows Registry Editor Version 5 00 HKEY CLASSES ROOT Directory Background shell runa
  • linux4.6 EC11旋转编码器的驱动

    最近项目使用了旋转编码器EC11 遍查内核 发现并没有它的驱动 查了查 终于找到一篇有用的 根据自己的需要和对最基础的gpio key c的理解 我改写出了一份EC11的专用驱动 感谢下面博主的启发 有了这位高人的指点 我才有信心改写成功
  • STM32串口DMA接收数据错位——暴力解决方法

    背景 两片STM32通过串口通信 为了减小CPU负担 采用DMA进行通信 发送端为STM32F103C8T6 接收端为STM32F407VET6 在调试的过程中发现 一直出现数据错位的问题 接收端尝试了串口空闲中断和串口DMA传输完成中断
  • SetupDiGetDeviceInterfaceDetail

    SetupDiGetDeviceInterfaceDetail 该函数返回设备接口的详细信息 BOOL SetupDiGetDeviceInterfaceDetail In HDEVINFO DeviceInfoSet In PSP DEV
  • MPU6500驱动调试笔记(STM32F407+SPI)

    一 问题背景 本来最开始实验室使用MPU6050芯片 采集陀螺仪原始数据做生理信号采集 但算法发现用IIC接口采样率 200hz 达不到要求 故寻找同类型支持SPI协议的芯片去替代 发现了这块MPU6500 还便宜 就用起来 在读写寄存器费
  • 2.处理器与设备间数据交换方式

    处理器与外设之间传输数据的控制方式通常有3种 查询方式 中断方式和直接内存存取 DMA 方式 21 查询方式 设备驱动程序通过设备的I O端口空间 以及存储器空间完成数据的交换 例如 网卡一般将自己的内部寄存器映射为设备的I O端口 而显示
  • S5P4418裸机之SDIO程序

    简介 SDIO Secure Digital Input and Output 即安全数字输入输出接口 它是在SD卡接口 的基础上发展而来 通常的存储设备 如TF卡 以及EMMC等存储芯片都是通过SDIO总线来通信的 一 s5p4418的S
  • 内核error: implicit declaration of function 'irq_to_gpio' 解决方法

    第一种方法 文件1 drivers mfd Kconfig 中 删除depends on GENERIC HARDIRQS SPI MASTER 添加depends on GENERIC HARDIRQS SPI MASTER ARCH P
  • 【实践】第一个驱动之自动生成主设备号和设备文件

    1 声明两个变量 static struct class firstdrv class static struct class device firstdrv class dev 2 修改函数first drv init void 和fir
  • qemu: 设备后端模拟

    目录 1 网卡模拟 2 网卡参数解析 3 qemu前端虚拟网卡设备创建 4 报文发送流程 5 报文发送流程 1 网卡模拟 参数 netdev type tap id eth0 ifname tap30 script no downscrip
  • printk函数的用法

    printk在内核源码中用来记录日志信息的函数 只能在内核源码范围内使用 用法和printf非常相似 printk函数主要做两件事情 第一件就是将信息记录到log中 而第二件事就是调用控制台驱动来将信息输出 1 日志级别 printk相比p
  • 杂项设备(misc device)和字符设备(char device)区别

    杂项设备 misc device 杂项设备也是在嵌入式系统中用得比较多的一种设备驱动 在 Linux 内核的include linux目录下有Miscdevice h文件 要把自己定义的misc device从设备定义在这里 其实是因为这些
  • SPI转can芯片CSM300详解以及Linux驱动移植调试笔记

    更多嵌入式Linux干货 请关注 一口Linux 一 CSM300概述 CSM300 A 系列是一款可以支持 SPI UART 接口的CAN模块 1 简介 CSM300 A 系列隔离 SPI UART 转 CAN 模块是集成微处理器 CAN
  • 解决qemu虚拟机图形界面卡死问题

    1 基础环境 Virtio gpu双heads 4 9 0内核 xserver1 9 3 modesettings0 5 0驱动 2 问题描述 终端中打开大量文字内容 不停上下滑动 或cat大量内容的文件 操作过程中用户界面卡死 如下 3

随机推荐

  • 游戏数据库设计经验

    一 游戏模板数据库设计特点 软件行业一般数据库设计原则 保持数据的完整性一致性 避免数据冗余 范式设计 但游戏领域的游戏模板表设计上还需要考虑这些特点 1 1 对游戏程序只读 游戏程序只需要考虑读取性能 不需要过多考虑修改性能 1 2 数据
  • 【代码审计】模板注入

    0x00 介绍 这里主要学习下 FreeMarker 模板注入 FreeMarker 是一款模板引擎 FreeMarker 模板文件与 HTML 一样都是静态页面 当用户访问页面时 FreeMarker 引擎会进行解析并动态替换模板中的内容
  • 学一点Ceph知识:初识Ceph

    Ceph是什么 Ceph是一个开源的分布式存储系统 可大规模扩展 高性能 无单点故障 在普通的服务器上可以支持到PB级容量 商用机器上支持的容量可以达到EB级别 Ceph的竞争力 市面上提供云存储的分布式系统如阿里云的OSS 底层存储框架为
  • 深度学习语义分割(二)SegNet论文解读

    SegNet是是第一次在语义分割中应用编码器 解码器 encoder decoder 的结构 其中 编码器使用池化层逐渐缩减输入数据的空间维度 而解码器通过反卷积层等网络层逐步恢复目标的细节和相应的空间维度 从编码器到解码器之间 通常存在直
  • 学习使用flex

    会对flex做词法分析了解很多 下面我通过一个例子来详细说明如何使用flex 根据所学的词法分析内容 利用flex构造PL 0语言的词法分析器 既然是构造PL 0的词法分析器 那么我们有必要看一下pl0语言的简介和相应文法 2 PL 0语言
  • Spring Boot集成websocket

    像目前的直播 弹幕 小游戏等方面都用到了websocet进行长链接 相对于http的一次请求一次响应websocket只需要进行一次握手即长久性的建立链接进行消息互通 为什么一些场景要用websocet呢 http的请求每次都会进行校验而请
  • 0000-00-00 00:00:00 的坑,你踩了吗?

    本文内容 1 起因 2 MySQL 对 0000 00 00 的支持 3 Java 对 0000 00 00 的支持 4 为什么线上的代码能正常运行 起因 前几天组内有系统做了数据库迁移 MySQL版本 5 6 16 其中某张表的一个字段是
  • 手机共享网络给电脑解决重装windows7系统没有网卡USB驱动

    手机共享网络给电脑解决重装windows7系统没有网卡USB驱动 我的手机是荣耀手机 使用下面方法 在手机上进入设置 gt 移动网络 gt 个人热点 gt 更多共享设置 开启USB 共享网络开关 共享移动网络或已连接的WLAN 网络给电脑
  • 什么是I帧,P帧,B帧

    视频压缩中 每帧代表一幅静止的图像 而在实际压缩时 会采取各种算法减少数据的容量 其中IPB就是最常见的 简单地说 I帧是关键帧 属于帧内压缩 就是和AVI的压缩是一样的 P是向前搜索的意思 B是双向搜索 他们都是基于I帧来压缩数据 I帧表
  • Redis在数据库事务中的增改操作

    数据库事务中的redis增改模板 if TransactionSynchronizationManager isActualTransactionActive TransactionSynchronizationManager regist
  • EF系列(一)——深入框架底层

    什么是EF 框架 EF 框架是微软的 NET中ORM 对象关系映射 框架 为什么要用EF框架 在没有EF框架之前 我们是直接与ADO Net 进行交互来访问数据库 在SqlHelper 里面面通过设置connection command d
  • SpringMVC+Shiro整合配置文件详解

    在项目中xml文件的配置是必不可少的 特别是SpringMVC框架 但是几乎所有项目的配置都是大同小异 很多人都是直接复制黏贴了事 不少人对其具体含义及用途都不甚全知 本片文章将正对项目中常用的框架SpringMVC Shiro进行整合 并
  • IntelliJ IDEA / Eclipse 自动生成 Author 注释 签名

    Author 注释 签名如下 author 稚枭天卓 E mail zhxiaotianzhuo 163 com version 创建时间 2016 6 20 下午04 58 52 Eclipse 自动生成 Author 注释 签名 win
  • 4位超前进位加法器-Verilog HDL

    Verilog HDL 简介 Verilog HDL是目前设计界通常采用的一种硬件描述语言 被广泛的应用在数字ASIC和可编程逻辑器件的设计开发工作 其按照一定的规则和风格编写代码 可以从系统级 电路级 门级 开关级等抽象层次 进行数字电路
  • jbk和jre的下载与安装

    一 下载 Java可进入Oracle官网下载 点击链接进入官网 1 点击链接进入官网 点击产品 2 打开产品列表 找到java点击 3 下载java 向下滑动选择需要的java版本 以java8为例子 选择Windows版本 选择对应的64
  • 本地真机调试小程序

    1 查出电脑本地ip地址 gt ipconfig 无线局域网适配器 WLAN 连接特定的 DNS 后缀 本地链接 IPv6 地址 xxxxx IPv4 地址 192 168 0 99 子网掩码 255 255 255 0 默认网关 192
  • winxp MySQL 5.6.35 免安装版 简单配置

    Links MySQL 5 6 35 MySQL 5 6 35 32位 下载地址 Reference MySQL 5 6 13免安装版配置方法 Steps 1 解压文件 放到任意一个路径 好像不要有中文 下面 如 D iTom MySQL
  • 09 TypeError: Descriptors cannot not be created directly.

    1 问题 import yaml ModuleNotFoundError No module named yaml yaml模块的pip工具包名称不是yaml 而是pyyaml 所以不是直接pip install yaml 而是 pip i
  • 专治机器学习面试:机器学习各个算法的优缺点!

    今天有朋友聊起来 机器学习算法繁多 各个算法有各个算法的特点 以及在不同场景下 不同算法模型能够发挥各自的优点 今天呢 我把常见的 常用的算法模型进行了一个大概的总结 包括其分支以及各分支的优缺点 涉及到的算法有 回归 正则化算法 集成算法
  • 关于驱动和设备的相关的注册表键的位置,和相关信息

    关于驱动和设备的相关的注册表键的位置 和相关信息 MSDN上有了 https msdn microsoft com en us library windows hardware ff549815 v vs 85 aspx 下面是大概翻译整理