以下是免费申请whql过程,ssldun.net提供代理申请服务,win7 win8 win10 win11 win2003 win2008 win2016 win2019 win2022 包含32和64系统,打包价格4500元,同时解决win7 win8 win2003等老系统sha1兼容问题.
ssldun提供ev签名证书,其中certum ev代码签名证书1900元,golbalsign ev代码签名证书3600元,若同时申请whql再减100元
自助申请地址 https://ssldun.net/ssl/style/sign.html
whql(Windows Hardware Quality Labs)认证是微软针对第三方的驱动程序进行的一系列测试,旨在确保驱动程序的兼容性。windows 10 1607以后版本的操作系统版本安装的驱动程序都需要先通过whql认证。否则会弹出红色警告框。
1.以下操作最好使用代理软件进行操作,否则打开网页会很慢。笔者这里已经提供注册好的账号,直接登录,无需再注册,可以跳过步骤二。
访问:
https://developer.microsoft.com/zh-cn/dashboard/Registration/Hardware?step=GetStarted提示首先确保先拥有一个EV代码签名的证书。这个证书需要向微软授信的机构购买。点击“立即下载可签名文件”,下载到" class="" alt="图片"/>文件,使用EV证书对其进行签名:笔者包中会提供EV签名所需的文件和说明,按照说明进行签名。签好后,上传签名后的文件:由于笔者之前已经使用这个相同的EV签名工具签名了SignableFile.bin文件并上传了,所以提示“此证书已用于注册”。后面的注册过程就不在截图了。
1. 访问:
https://developer.microsoft.com/en-us/dashboard/hardware使用刚才申请的账号登录,我这里使用之前申请的账号登录:首次在电脑上登录,手机的Authenticator会收到请求登录信息。这个是注册的时候会提示下载的,用于登录验证的。批准后,会跳到下面的页面:到此,注册、登录微软开发者账号完成。后面就需要使用WLK测试,并提交测试报告给微软了。
至少需要两个系统(必须为英文操作系统),不能是任何的虚拟机,必须是物理机。
测试服务器 一个windows server版本的系统,推荐使用windows server 2012。
测试系统 需要windows 10 版本的操作系统,并且安装好要测试的驱动程序(1607以后的windows 10 可以打开测试模式安装驱动)。
若测试系统只有一台,可以安装windows10最新版的操作系统(笔者用的windows10 20H2)。笔者经验证只测试一个最高版本的windows系统,也能获得WHQL签名。
另外这两个系统需要加入在一个内网并且加入同一个工作组。如果不在同一网段的话,可能安装完HLK client后连接不上HLk server。加入了同一网段后,如果未把测试服务器和测试系统加入同一工作组,则会导致HLK测试的时候找不到测试的项。Windows Hardware Lab Kit (Windows HLK) 是一套进行whql认证的测试框架。HLK套件仅用于windows 10,如果要测试windows 10 之前的操作系统,需要使用HCK套件(Hardware Certification Kit)。https://docs.microsoft.com/en-us/windows-hardware/test/hlk/选择对应测试系统对应版本的HLK下载
安装完选择Controller + Studio 一路点击Next即可完成测试服务器的安装:测试系统的安装不需要额外的去下载安装包了,应该从安装完成的服务端获取。地址为:
HLKInstallClientSetup.cmd
例如我们的服务器地址是192.168.2.239:
安装完HLK client之后,去服务端打开HLK studio,便可以在默认连接池中找到我们刚刚成功安装的HLK client。首先点击Configuration菜单栏,新建一个计算机池(HLK控制器会把测试的任务,分配到你选择的计算机池里边),然后将默认的计算机池中的计算机拖动至我们新建的计算机池中,然后右键计算机池中的计算机,可以改变其状态,当计算机的状态为Ready状态的时候,即表示当前的计算机可以开始测试任务了。有时候想重新测试时,状态改变不了Ready,需要卸载测试机的HLK client,重新安装。新建完成后选择项目,然后点击Selection,到这里可以选择测项,由于我们的驱动程序是一个WFP网络驱动,选择下图红圈中的Software device,选到对应的驱动程序,打上勾即可:注意这里需要使用工具加载驱动,并把驱动对应的注册表键值的Start改为1,因为要随着系统启动自动加载驱动。有时HLK Studio的Selection的Software device的列表中没有要测试的驱动,这时候删除Configuration中的Ready状态的计算器,重启HLK Studio或测试机,就能找到驱动了。
下面切换到Tests选项,到
https://docs.microsoft.com/en-us/windows-hardware/test/hlk/
下载playlist。点击Load Playlist,加载对应测试机对应windows操作系统版本的xml文件。
笔者测试机操作系统是windows10 20H2,所以选择下面这个文件:这个功能可以省去很多测试项目,比如下面没有应用Playlist时需要测试很多项目:需要注意的是,笔者在测试有些驱动的时候,先应用了Playlist,只剩下上面这个测试项目。测试开始跑后,EnableDriverVerifier、SetDriverVerifierOptions、QueryDriverVerifierSettings无法通过。解决办法是先不应用Playlist,待上图中的测试通过后再应用Playlist。
下图是测项旁边可能会出现的几种标志的意思,比如有个人形的logo代表测试的时候需要交互:给全部的测项打上勾,点击Run Selected,此时测试就开始了。测试的过程中测试系统会重启,等重启完成后,如果驱动程序需要手动启动的话,就先启动我们的驱动程序,驱动程序启动后就不需要再操作测试系统了,等待测试完成即可。
测试完成后去https://docs.microsoft.com/en-us/windows-hardware/test/hlk/解决办法参考:
https://docs.microsoft.com/en-us/windows-hardware/drivers/kernel/single-binary-opt-in-pool-nx-optin
在
这里加入POOL_NX_OPTIN。然后在DriverEntry开始的部分加入:ExInitializeDriverRuntime(DrvRtPoolNxOptIn);如果一切顺利的话,所有的测项都通过了,就可以对测试的结果打包,提交给微软审核了。打包需要的几个材料分别是:蓝色的项目中不需要我们手动添加了,我们需要提供EV代码签过名的驱动程序以及对应的inf文件,还有对应的pdb符号文件。
选择Package页面,把驱动文件和inf文件保存在一个目录(没有INF文件的驱动可能需要手动生成,且inf中的字段要写正确,否则Create Package时会提示inf文件错误),右键选择Add Driver,选择这个目录。把pdb符号文件保存在一个目录,右键选择Add Symbols,选择这个目录。这时候会弹出一个签名的提示,根据情况选择第3项,弹出下面的对话框:选择笔者包中提供的.cer文件,再写入一个生成的报名,提示输入EV证书密码就行了。未签名的hlkx文件是无法提交给微软审核的。访问https://developer.microsoft.com/en-us/dashboard/hardware出现上图的页面,填写Product name、勾选Requested Signatures栏的Windows Server 2008 X64、Windows Vista Client X64复选框、勾选What type of device的Internal复选框。注意这里一定不要勾选Perform test-signing for Win10 and above复选框,因为会生成WHQL测试签名,导致在win10 1607(新装非升级)以上版本安装驱动时提示此证书已被吊销。
操作完成后点击下面的”Submit”按钮你,就提交给微软了。之后就是等微软回复了。也是在这个页面等待。一般会卡在Manual review一段时间,有时候微软那边在睡觉,等睡醒后会进行审核。审核时间为1个小时到1天。尽力在微软工作时间提交,反馈会比较快。
We detected some issues while validating your package and are manually reviewing the package for additional filters.
上面的句子会显示在下面,是正常的,所有审核的时候都有这个提示。即没有Sign环节的,且提交.hlkx时Requested Signatures下面的复选框没有出现的,如下图,没有这个复选框的:是将测试结果打包的时候操作有误,没有正确地添加EV签名的驱动文件的原因。要重新打包。点击红框中的Download signed files按钮,即可下载微软签名后的驱动文件: