WHQL简介:

WHQL全称Windows Hardware Quality Labs testing(Windows硬件质量实验室测试)它是对所涉及的第三方硬件软件进行一系列测试,然后提交测试的日志文件到微软供微软审核的一个测试流程。该流程也可能包含微软在各种设备上运行自己的测试,例如不同的硬件和不同的Microsoft Windows版本。我的个人理解WHQL其实就是微软为了统一平台的驱动完整性搞出来的东西,拿到ev签名意思证明你是微软合作的开发商,经过whql测试就证明你驱动在他的那些系统版本上可运行安装不会报错,因为我没调试文件微软应该只是测试我驱动能能安装,如果提交测试文件微软应该会根据你调试文件进行测试然后给你再各个平台上运行的反馈结果 。

WHQL数字签名申请步骤:

1、首先你应该到微软的仪表板页面申请一个Azure AD 账号地址为:https://partner.microsoft.com/zh-cn/dashboard/hardware/Search

2、在开发人员设置-账户-管理证书 添加一个证书,这一 步需要你利用你从微软代理的EV证书合作商那里拿到证书后利用SHA2对从该页面下载的一个BIN文件进行签名,将该文件重新上传后微软将根据你签名的文件生成一个代码签名证书。微软目前授权的证书机构为Symantec,GlobalSign,DigCert,Entrust这些是微软正规授权的证书颁发商而沃通之类还有证书签名方案解决商的只是EV证书机构的代理商,他们拿到代理权然后推出一些证书签名工具还有方案作为二次销售。(补充说明bin文件一定要单签名SHA2不要双签也不要用SHA1签名否则提交后均不能通过审核)。

3、驱动提交文件格式目前为.hlkx, .hckx, .cab, wlk 因为我只是利用人家开源的驱动程序进行开发因此我不需要提交测试文件只要提交.INF 跟.SYS文件让微软帮我生成.CAT 带签名与.SYS带签名的文件即可。

4、cab文件应该将驱动文件放在一个目录下再生成cab文件如果直接将cat 与 sys文件生成cab微软的自动脚本解压后无法识别,这个点MSDN描述的非常不清楚算是一个比较坑的地方,我相信大部分人都没有布置HLK服务器的条件隐藏cab可能有挺多人用的(我说的大部分人是小公司客户端一般一人开发的那种情况)。

5、cab文件生成后应该利用签名工具对该cab文件进行SHA2签名

6、提交完成后微软会返回一个下载包里面包含.INF CAT SYS这三个文件后面两个带有微软的WHQL签名   Microsoft Windows Hardware Compatibility Publisher 该前面证明你已经在微软测试的相对应平台上没有任何问题。

结语:

whql刚接触之前觉得挺深奥的其实它就是一个微软给你盖的出厂检验合格证,但是产品质量有没有问题谁也不好说BUG这玩意众所周知是一个非常玄学的东西,谁也说不准它何时会发生所以就算你拿到了WHQL认证也顶多是你带了一个有效的数字签名然后可以报错蓝屏之类的溢出问题。以上就是对WHQL的简单描述与个人理解如果有不懂的可以留言或者加群624685312我自己建立的一个学习群里面有我学习分享的一些开源代码。

关于WDK开发内核签名之WHQL签名认证流程简介的更多相关文章

  1. IONIC 开发的Android应用程序签名(或重新签名)详解

    完全通过DOS命令来完成apk签名 给apk签名一共要用到3个工具,或者说3个命令,分别是:keytool.jarsigner和zipalign,下面是对这3个工具的简单介绍:            ...

  2. 转:微信开发之使用java获取签名signature(贴源码,附工程)

    微信开发之使用java获取签名signature(贴源码,附工程) 标签: 微信signature获取签名 2015-12-29 22:15 6954人阅读 评论(3) 收藏 举报  分类: 微信开发 ...

  3. iOS 应用签名原理&重签名

    在苹果的日常开发中,真机测试与打包等很多流程都会牵扯到各种证书,CertificateSigningRequest,p12等.但是很多相应的开发者并不理解iOS App应用签名的原理和流程.今天着重讲 ...

  4. iOS使用Security.framework进行RSA 加密解密签名和验证签名

    iOS 上 Security.framework为我们提供了安全方面相关的api: Security框架提供的RSA在iOS上使用的一些小结 支持的RSA keySize 大小有:512,768,10 ...

  5. 为App签名(为apk签名)

    为App签名(为apk签名) 原文地址 这篇文章是Android开发人员的必备知识,是我特别为大家整理和总结的,不求完美,但是有用. 1.签名的意义 为了保证每个应用程序开发商合法ID,防止部分开放商 ...

  6. 解决postman环境切换,自动获取api签名时间及签名

    postman调试api接口时,常遇到两个问题: 1.环境分为开发环境,测试环境,正式环境,如何只写一个接口,通过切换postman环境来实现不同环境的接口调用? 2. api接口请求时往往会添加,来 ...

  7. Android签名机制之---签名过程详解

    http://www.2cto.com/kf/201512/455388.html 一.前言 又是过了好长时间,没写文章的双手都有点难受了.今天是圣诞节,还是得上班.因为前几天有一个之前的同事,在申请 ...

  8. Mac App Store应用签名和pkg签名(必须签名后才能销售)

    App签名 只有用苹果颁发的证书签名的应用才能在App Store上进行销售,所以我们开发的应用必须打上签名. 签名有两种方式,一是使用Xcode,在配置里面设置签名,编译出来的app就有了签名:二是 ...

  9. Mac App Store应用签名和pkg签名,查看签名

    App签名 只有用苹果颁发的证书签名的应用才能在App Store上进行销售,所以我们开发的应用必须打上签名. 签名有两种方式,一是使用Xcode,在配置里面设置签名,编译出来的app就有了签名:二是 ...

随机推荐

  1. <JZOJ4269>挑竹签

    emm一开始将++cnt敲成cnt++ 就很委屈 一个拓扑排序而已 Description 挑竹签——小时候的游戏 夏夜,早苗和诹访子在月光下玩起了挑竹签这一经典的游戏.挑竹签,就是在桌上摆上一把竹签 ...

  2. iOS中如何实现准确的倒计时程序 · 九十里

    iOS中倒计时程序,考虑线程暂停场景. iOS App进入后台时,GCD线程也会跟着暂停.当程序进入前台后,GCD线程恢复.因而倒计时程序需要考虑这一点,通过加入时间的比对来实现. + (void)c ...

  3. SpringMVC_Day01

    项目结构 //SpringMVC配置文件 <?xml version="1.0" encoding="UTF-8"?> <!-- spring ...

  4. ERROR 1129 (00000) Host ‘XXXXXX’ is blocked because of many connection errors; unblock with ‘mysqlad

    1.今天早上由于公司网络带宽达到上限,导致多台web服务器连接mysql服务器超时.后来情况好转后,连接数据库服务器出现如下错误. Host '*' is blocked because of man ...

  5. 用shell脚本新建文件并自动生成头说明信息

    目标: 新建文件后,直接给文件写入下图信息 代码实现: [root@localhost test]# vi AutoHead.sh #!/bin/bash #此程序的功能是新建shell文件并自动生成 ...

  6. 杂记:VMware中为mac虚拟机扩容

    之前在VMware中安装Mac虚拟机时,硬盘选的是默认的40G,后来用的过程中随着软件的安装,特别是安装完Xcode和QT5.9之后,可用空间只剩不到3G,每次开机之后都会提醒空间不足,需要清理空间, ...

  7. Ubunt 16.04 安装 Beyond compare 4

    1. 下载安装包: 2. 安装步骤 3. 运行并注册 之前Beyond compare 3 只有32位,在Ubunt 16.04上运行效率非常低,所以只有安装最新的Beyond compare 4,安 ...

  8. CountDownLatch源码探究 (JDK 1.8)

    CountDownLatch能够实现让线程等待某个计数器倒数到零的功能,之前对它的了解也仅仅是简单的使用,对于其内部如何实现线程等待却不是很了解,最好的办法就是通过看源码来了解底层的实现细节.Coun ...

  9. swoole(1)使用docker安装swoole环境

    1.下载镜像 pull php 镜像 docker pull php:7.3-alpine3.8 创建容器 docker run -it --name test php:7.3-alpine3.8 s ...

  10. 利用机器学习检测HTTP恶意外连流量

    本文通过使用机器学习算法来检测HTTP的恶意外连流量,算法通过学习恶意样本间的相似性将各个恶意家族的恶意流量聚类为不同的模板.并可以通过模板发现未知的恶意流量.实验显示算法有较好的检测率和泛化能力. ...