GlobalSign 新闻 & 分享

驱动版本更新后,还需要重新做 WHQL 认证吗?哪些改动应先复核?

分类:代码签名

时间:2026-10-26

驱动版本更新后,还需要重新做 WHQL 认证吗?哪些改动应先复核?

摘要:驱动更新是否需要重新测试和提交,不能只看版本号或修改行数。应先比较驱动包中的二进制文件、INF 配置、支持硬件和目标系统,再判断适用的微软提交路径。DUA 对 PE 二进制文件有明确限制,EV 代码签名证书也不能代替兼容性测试。把文件差异和原认证范围核对清楚,才能安排更新与发布。


一个已经通过认证的驱动修复了问题,开发团队准备发布新版本。此时最容易出现的分歧,是一方认为“改得很少,沿用旧认证就行”,另一方要求把全部测试从头跑完。

先不要用这两种结论排期。应拿到准备交付的新驱动包,与原来提交的包逐项比较。修改发生在哪个文件、有没有扩大支持范围,比版本号从1.0 升到 1.1 更能说明需要复核什么。

通常所说的 WHQL 认证,与微软 Windows 硬件兼容认证及 HLK 测试相关。本文讨论已经有提交记录的驱动如何评估后续更新,不将普通应用程序签名当成驱动认证。


先比较两个实际交付包

复核应从最终文件开始。让开发提供源码变更说明,同时让发布人员比较新旧驱动包的文件清单、哈希、INF 和适用系统。源码仓库里只改了一处,并不表示构建产物也只变了一处。

例如,仅重新编译就可能产生不同的SYS 或 DLL。即使修复没有增加新功能,也应将它记为二进制发生变化,而不是“功能没变,所以文件没变”。文件哈希可以帮助发现差异,但不能单独决定认证路径。

本次更新发生的变化

应优先核对的内容

SYS、DLL 等文件发生变化

是否属于 PE 二进制,以及受影响的功能和测试范围

仅修改 INF 或其他非 PE 文件

是否符合 DUA 条件,安装行为和适用范围是否改变

新增硬件 ID 或设备型号

原有认证和测试结果是否覆盖新增对象

增加目标 Windows 版本或架构

对应系统要求、测试环境和提交范围

修改发布名称或提交信息

属于元数据调整,还是实际驱动包也发生了变化

这张表用于组织复核,不是微软的“免测清单”。是否可以使用某条更新路径,仍需以对应项目和当前提交要求为准。


DUA 不能拿来替换已经修改的 SYS

微软提供 DriverUpdate Acceptable,简称 DUA,供符合条件的驱动更新使用。它有一个容易被忽略的限制:DUA 提交不得新增或修改 PE 二进制文件。 SYS、DLL、EXE 是常见类型,判断依据是文件本身是否为 PE,而不只是扩展名。

因此,修复写进 SYS 后,即使只改了一行逻辑,也不能凭“改动小”直接按 DUA 处理。给文件改后缀,同样不会改变它的二进制格式。

非 PE 文件可以在 DUA 中新增、修改或删除,但这不表示所有 INF 改动都天然适合沿用原有范围。若安装对象、依赖或支持范围随之变化,仍应核对适用条件,并安排相应验证。基础提交 INF 引用的 PE 文件,也不能随意从 DUA 包中删掉。

使用 DUA 前,还要确认原始提交是否符合要求、当前账户能否获取 DUA shell。微软说明,attestation 签名驱动不适用 DUA;它不能作为所有驱动更新的通用入口。下载的 shell 也需要由兼容的 HLK Studio 打开,旧版本工具未必能识别新的包格式。


二进制或支持范围变化后怎样安排复核

对于不符合 DUA 条件的更新,应重新确认测试和提交安排。重点是把实际改动对应到测试对象,再按微软适用规则准备测试结果与新包。不能因为无法走 DUA,就自行推断“必须重跑全部项目”;也不能只跑开发人员认为相关的一项,就宣布覆盖了认证要求。

可以先在变更说明中回答四个问题:


  • 哪些驱动文件重新构建,涉及什么行为。
  • 原来支持的设备和系统有没有变化。
  • 安装、升级、卸载及异常恢复是否受到影响。
  • 当前提交路径需要哪些测试结果,原有结果是否允许使用。


例如,修复待机恢复问题,应把相应设备状态与恢复后的行为放进复核范围;新增设备型号,应核对该型号是否仍在原测试和提交覆盖内。这些是测试规划的起点,不是对认证结果的预先承诺。

测试结束后,发布人员还应确认测试包、提交包和准备交付的包能够对应。不能测试一份二进制,提交前又重新构建另一份,却只因为版本号相同就直接替换。


EV 代码签名证书负责哪一步

微软的 DUA 打包指南要求使用 EV 代码签名证书对提交包签名。这项签名用于提交链路中的身份与完整性验证,与驱动是否满足兼容认证要求承担不同职责。

GlobalSign 提供 EV 代码签名证书,企业可按实际需求选择 Token 或 HSM 实现。准备驱动发布时,应提前确认组织资料、证书状态、硬件可用性和获授权的签署人员,让最终提交包能够按微软要求完成签名。

证书续订了,不代表驱动自动获得新的兼容认证;驱动拿到了微软返回的签名包,也不等于企业后续重新打包的所有文件都保留同样结果。下载返回文件后,应保存对应提交编号、认证信息、文件哈希与发布记录,并在目标环境完成安装验证。

对更新项目,比较实用的排期依据是一份简短结论:本次改了什么、采用什么提交路径、需要什么测试、谁负责最终签署和交付。先把这些内容说清,才能判断是安排一次受限更新,还是为新一轮测试留出时间。



FAQ

Q1:只调整驱动版本号,就一定要重新跑完整的 HLK 测试吗?

A:不能只凭版本号判断。先检查最终包是否改变、改变了哪些文件及支持范围,再核对当前提交路径。版本号只是识别信息,不是通用的免测或重测条件。


Q2:SYS 只修复了一处问题,能否通过 DUA 更新?

A:若 SYS 属于 PE 二进制且已经修改,就不符合 DUA 不得新增或修改 PE 文件的限制。需要按适用规则重新评估测试和提交路径。


Q3:只修改 INF,是不是可以直接替换原有发布包?

A:应先评估 DUA 适用性和 INF 引起的实际变化,再按对应流程创建、签名和提交更新包。允许修改非 PE 文件,不等于允许跳过提交,也不代表原认证范围无限扩展。


Q4:重新购买 EV 代码签名证书,能解决驱动测试失败吗?

A:EV 证书处理发布者身份与相应签名需求。测试失败仍应根据失败项目、驱动行为和测试环境排查,更换证书不能代替修复与验证。


关于 GlobalSign 代码签名

GlobalSign 为合法注册的组织提供标准和 EV 代码签名证书,国内方案可按需求确认 Token 或 HSM 实现。对于驱动发布团队,EV 证书可用于满足相应微软提交流程的签名要求;兼容性测试、认证提交和最终分发仍应按照微软规则执行。


资料来源

Microsoft Learn 驱动更新包与 DUA 文件限制

https://learn.microsoft.com/en-us/windows-hardware/test/hlk/user/create-a-driver-only-update-package

Microsoft Learn 已有硬件提交的更新方式

https://learn.microsoft.com/en-us/windows-hardware/drivers/dashboard/hardware-submission-update

GlobalSign 代码签名证书

https://www.globalsign.cn/code-signing


相关推荐

  • 最新
  • TLS/SSL
  • 代码签名
  • eIDAS
  • ACME
  • 数字证书
  • 自动化