打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
使用DpInst安装驱动程序

    出差时发现一些大公司使用DpInst工具安装驱动,当时觉得这种方式安装驱动相当方便,出于好奇回来后自己也尝试这种安装方式。

    DpInst.exe工具位于ddk目录redist\DIFx\dpinst\EngMui下,同时M$在src\setup\DPInst目录下提供了定制DpInst驱动安装包的样例。一个基本的驱动安装包至少要包含cat,sys(已签名,测试签名也可以,为cat和sys做测试签名的方法可以参考这里)和inf这些文件,除此之外可能需要dll(CoIntall)文件。DpInst安装这样的驱动包后,控制面板-程序和功能面板中会出现一项,如下图是我安装toaster后在程序和功能面板中多出的项:
(图1)
    注重程序外表的人(反正我不是)可能不满足这样的图标,一定要自己定制一个图标,这就可以参考src\setup\DPInst:提供一个DpIn.xml,里面指定需要定制的图标文件等。
    DpInst安装驱动包后,会在C:\WINDOWS\system32\DRVSTORE目录下产生一个形如"驱动程序名_xxxx"(图2)的文件夹,里面包含了cat/sys/inf等文件(图3)。
(图2)
(图3)
当系统检测到有新设备插入时,PNP管理器会到这个目录匹配HDIW,如果HWID和inf文件中指定的HWID恰能匹配,则为新设备安装驱动。
    怎样,是不是觉得DpInst是一个方便的驱动安装工具?开始时,我的确这样觉得,但在测试中我发现了一些不足:没法为已存在的设备栈再安装过滤驱动。仍然以toaster驱动为例:用DpInst安装如下的两个驱动包:1.toaster功能驱动驱动包(simple.inf/toaster.sys/toaster.cat);2.filter过滤驱动驱动包(filter.inf/devupper.sys/toaster.cat)。虽然DpInst都能成功安装驱动,但最多只有功能驱动能正常工作,如图4
(图4)
从图中可以看到DRVSTORE目录下的确已经存在两个驱动包,但是模拟设备插入后仅安装了simple.inf指定的设备。另外,注册表信息也反应了toaster设备堆栈上并没有插入过滤驱动:
(图5)
如果将DpInst替换为熟悉的devcon.exe工具,倒可以将过滤驱动安装到设备栈中,如图5:


(图5)

(图6)
虽然devcon需要通过install/update的一系列复杂动作才能把过滤驱动装到设备栈中,但至少比DpInst装不了第三方驱动要好点,为此我问过日本同事DpInst为什么不能做到安装第三方过滤驱动的原因,他的解释是Pnp管理器在DrvStore目录中匹配到了符合条件的HWID(simple驱动包),因此就不会再安装filter过滤驱动包。当然,我们也可以通过用SetupDi接口将过滤驱动安装到合适的位置。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
如何安装inf类型驱动程序 inno
HP 打印机安装向导 继续变灰色 无法进去下一步 无法继续
如何安装打印机驱动?打印机驱动安装步骤图解
怎么样重新安装网卡驱动?
驱动人生2010beta,自动手动对对碰
AVRUSB技术探讨
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服