none
关于设备过滤驱动的预安装问题 RRS feed

  • 问题

  • 大家好

            单位最近做了一个产品,是关于异形的键盘,需要加载相应的过滤驱动,对设备驱动进行过滤,

    安装的现象如下:

    1、  预安装驱动成功,即调用SetupCopyOEMInf函数成功后,在驱动仓库也找到了相应的过滤驱动程序包,

    包括相应的INF文件、PNF文件以及SYS文件,Windows\inf文件夹下也生成了OEM*.inf

    2、  插入相应的异形键盘,加载了微软的标准驱动程序,没有加载自己定义的驱动。

     

    调查了相应的资料,驱动加载的选择会有一个打分的规则,通过签名、特征分与设备ID分来进行,

     

    疑问是:

             1、如果不进行WHQL认证,系统是否就无法通过预安装主动加载自定义的驱动?

    2、即使在硬件的PIDINF中的匹配以及使用测试签名的情况下,系统也依然认为微软的驱动优先级比较高?

    2017年2月14日 9:20

答案

  • Windows 7、Windows XP 在控制面板“系统”属性关于硬件配置的高级选项里选择始终信任未通过 WHQL 认证的驱动就可以。Windows 8、Windows 10 现在好像是越来越严格了,必须通过“设置”里的“疑难解答”选择高级选项重新启动计算机,然后按 F7 进入调试模式才能安装没有认证的驱动。

    Driver Store and Device Path 是全部的本地途径,获取驱动还有来自网络的途径。


    Alexis Zhang

    http://mvp.microsoft.com/zh-cn/mvp/Jie%20Zhang-4000545
    http://blogs.itecn.net/blogs/alexis

    推荐以 NNTP Bridge 桥接新闻组方式访问论坛。

    本帖是回复帖,原帖作者是楼上的 "为大家服务"

    | 1、为了在WHQL认证之前确认过滤驱动的预安装这个功能好用,怎样修改默认设置变为始终信任未通过认证的驱动?是使用某个具体的API函数,还是在系统的某个设置中进行调整,或者通过修改注册表项?具体方法是什么样的?

    • 已标记为答案 Tyler Zhao 2017年2月20日 3:07
    2017年2月19日 8:03
    版主
  • 噢,我好像记错了,那是 Windows XP,不好意思。

    Windows 7 可以通过组策略设置“用户配置”-“管理模板”-“系统”-“设备驱动程序的代码签名”。或者在系统启动之前在 F8 启动菜单里选择“禁用驱动程序签名强制”也行。


    Alexis Zhang

    http://mvp.microsoft.com/zh-cn/mvp/Jie%20Zhang-4000545
    http://blogs.itecn.net/blogs/alexis

    推荐以 NNTP Bridge 桥接新闻组方式访问论坛。

    本帖是回复帖,原帖作者是楼上的 "为大家服务"

    | 回答十分有用,特别感谢
    | 有个细节想确认下:在控制面板中的系统”属性对话框中没有找到关于硬件配置的高级选项,这个设置在哪呢?

    • 已标记为答案 Tyler Zhao 2017年2月21日 2:02
    2017年2月20日 12:21
    版主

全部回复

  • 1. 不是绝对不行,但 Windows 对驱动 WHQL 认证的趋势越来越严格,默认设置需要修改为始终信任未通过认证的驱动才可以。

    2. 这个只影响驱动获取的途径,不影响安装的优先级。据我所知应该还没那么“流氓”。


    Alexis Zhang

    http://mvp.microsoft.com/zh-cn/mvp/Jie%20Zhang-4000545
    http://blogs.itecn.net/blogs/alexis

    推荐以 NNTP Bridge 桥接新闻组方式访问论坛。

    本帖是回复帖,原帖作者是楼上的 "为大家服务"

    | 1、如果不进行WHQL认证,系统是否就无法通过预安装主动加载自定义的驱动?
    | 2、即使在硬件的PID和INF中的匹配以及使用测试签名的情况下,系统也依然认为微软的驱动优先级比较高?

    2017年2月16日 14:07
    版主
  • Zhang先生:

        十分感谢回答,收益很多!

        但是仍然有几个小疑问,想请教下。

    1、为了在WHQL认证之前确认过滤驱动的预安装这个功能好用,怎样修改默认设置变为始终信任未通过认证的驱动?是使用某个具体的API函数,还是在系统的某个设置中进行调整,或者通过修改注册表项?具体方法是什么样的?

    2、驱动的获取途径是指“just Driver Store”和“Driver Store and Device Path”这两个途径么(引号中的值从setupapi.dll中获得的)?

    3、在setupapi.dev.log中查看到“Policy is set to make all digital signatures equal.”这个值,这个值是否就是驱动匹配策略设置后打印的Log信息?

    再次感谢,辛苦了!


    2017年2月17日 1:57
  • Windows 7、Windows XP 在控制面板“系统”属性关于硬件配置的高级选项里选择始终信任未通过 WHQL 认证的驱动就可以。Windows 8、Windows 10 现在好像是越来越严格了,必须通过“设置”里的“疑难解答”选择高级选项重新启动计算机,然后按 F7 进入调试模式才能安装没有认证的驱动。

    Driver Store and Device Path 是全部的本地途径,获取驱动还有来自网络的途径。


    Alexis Zhang

    http://mvp.microsoft.com/zh-cn/mvp/Jie%20Zhang-4000545
    http://blogs.itecn.net/blogs/alexis

    推荐以 NNTP Bridge 桥接新闻组方式访问论坛。

    本帖是回复帖,原帖作者是楼上的 "为大家服务"

    | 1、为了在WHQL认证之前确认过滤驱动的预安装这个功能好用,怎样修改默认设置变为始终信任未通过认证的驱动?是使用某个具体的API函数,还是在系统的某个设置中进行调整,或者通过修改注册表项?具体方法是什么样的?

    • 已标记为答案 Tyler Zhao 2017年2月20日 3:07
    2017年2月19日 8:03
    版主
  • Zhang先生:

        回答十分有用,特别感谢!

        有个细节想确认下:在控制面板中的系统”属性对话框中没有找到关于硬件配置的高级选项,这个设置在哪呢?

    2017年2月20日 8:46
  • 噢,我好像记错了,那是 Windows XP,不好意思。

    Windows 7 可以通过组策略设置“用户配置”-“管理模板”-“系统”-“设备驱动程序的代码签名”。或者在系统启动之前在 F8 启动菜单里选择“禁用驱动程序签名强制”也行。


    Alexis Zhang

    http://mvp.microsoft.com/zh-cn/mvp/Jie%20Zhang-4000545
    http://blogs.itecn.net/blogs/alexis

    推荐以 NNTP Bridge 桥接新闻组方式访问论坛。

    本帖是回复帖,原帖作者是楼上的 "为大家服务"

    | 回答十分有用,特别感谢
    | 有个细节想确认下:在控制面板中的系统”属性对话框中没有找到关于硬件配置的高级选项,这个设置在哪呢?

    • 已标记为答案 Tyler Zhao 2017年2月21日 2:02
    2017年2月20日 12:21
    版主
  • Zhang先生:

        所有问题已解决,十分感谢!

    2017年2月21日 2:05
  • 很高兴对您有所帮助。


    Alexis Zhang

    http://mvp.microsoft.com/zh-cn/mvp/Jie%20Zhang-4000545
    http://blogs.itecn.net/blogs/alexis

    推荐以 NNTP Bridge 桥接新闻组方式访问论坛。

    本帖是回复帖,原帖作者是楼上的 <Tyler Zhao>;

    | Zhang先生:
    | 所有问题已解决,十分感谢

    2017年2月21日 14:08
    版主