【如何查找驱动】注册表 与 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文件。有没有更好的方法?例如查找注册表等。
--------------糗---------百--------------的-----------粉-----------哥-----------线-----------
问题挺多的,麻烦各位大仙按自己的理解回答,会哪个问题就写哪个。先写上问题编号,然后再写想法。