【如何查找驱动】注册表 与 INF文件

oaeo 2011-10-18 09:47:45
【场景描述】
设备插入系统后,OS就获取到硬件信息,如VID/PID等,然后就去注册表中查询该设备以前是否连接过该电脑。如果有,则系统不声不响地完成连接。如果没有,则系统会在右下角弹出气泡说发现新硬件,并自动搜索驱动。若找到与该设备匹配的驱动,则会安装驱动,并更新该设备在注册表中的信息,如Class、ClassGUID、Driver等信息。若系统没有搜索到已安装的驱动有与之匹配的,则会弹出一个安装新硬件的向导,让你选择该硬件自己的驱动安装文件……

【问题】
1、上面的描述是否准确?如有不准确的地方,请指出。
2、设备插入系统后,系统除了获得VID/PID和兼容ID信息外,是否还能获得更多信息?我猜想是不是在设备信息中有声明其驱动名称的字段?如果有那就方便了,直接查找就行。如果没有,则看下一问题3.
3、系统如何去匹配已安装的驱动是否适合该硬件?猜想:系统会去遍历C:\windows\inf下的所有inf文件并解析inf文件是否适合,但这样会很耗时间吧?感觉系统找驱动挺快的,好像不是这种方法……
4、驱动安装后,都更改了注册表的哪些信息?这个问题可能有点纠结,因为INF里面都显式写明要添加的注册项,但是除了这些,是否还隐含添加了某些注册项?

5、综合上面所有问题,我想解决的就是:知道了设备的VID/PID和兼容ID,如何找到与这个设备匹配的驱动程序。不要告诉我说去XX网站上查,然后手动下载。现在是已经有了很多设备,例如各种手机的驱动包,现在插入一部手机,如何去查找匹配这些驱动?我目前的思路就是问题2后面的猜想,遍历所有的inf文件。有没有更好的方法?例如查找注册表等。


--------------糗---------百--------------的-----------粉-----------哥-----------线-----------


问题挺多的,麻烦各位大仙按自己的理解回答,会哪个问题就写哪个。先写上问题编号,然后再写想法。
...全文
587 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
oaeo 2011-11-08
  • 打赏
  • 举报
回复
丫的半个多月没有个会的人……太TM伤心了,结贴!
oaeo 2011-10-18
  • 打赏
  • 举报
回复
类似问题:
http://www.programfan.com/club/showpost.asp?id=8122

谁能解释一下【billy145533】说的第5点:
(5)Setup使用设备VID和PID到%Windir%\\inf下寻找适合它的inf文件,并获得一个可用于设备的驱动程序列表;

这一步,是否有现成的API可以用来匹配VID/PID和INF文件呢?
火影驱动备份 beta1 ---------------------------------- 作者:黑海洋 BLOG:http://www.upx8.com/article.asp?id=89 ---------------------------------- 程序介绍:   驱动备份顾名思义就是备份操作系统的各个硬件的驱动程序;   程序通过两种方式搜索系统中的驱动:一.搜索建议备份的驱动(系统没有自带的驱动);二.搜索系统 中所有的驱动(系统自带和第三方提供的驱动程序);   列表方式显示搜索出来的驱动,并且注释驱动类型和备份建议;   通过单击驱动列表项,可以查看驱动的详细信息;   程序引入插件技术(Plugin)来扩展程序的功能,插件程序放在Plugin文件夹下,以*.Dll为后缀名;删 除插件不会影响程序的正常运行. ---------------------------------- 程序功能实现原理:   系统驱动程序信息都保存HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class下,读取 所有该目录下的子键来获取系统的所有驱动的详细信息;   每个设备驱动注册表子键中的InfPath的值是驱动程序的驱动安装文件,他存放在系统目录的下的 inf文件夹下(例如:Windows2000系统下的WINNT\inf\下);   例如显卡驱动的安装文件oem10.inf(例如:Windows2000系统下的WINNT\inf\oem10.inf),从文件中的 [SourceDisksFiles]段可以查找到包含显卡驱动文件,通过搜索系统目录,查找出后复制并保存在指定 的目录下就完成了备份. ----------------------------------

21,600

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧