如何根据 Windows 版本限制或扩大驱动程序的分发范围
合作伙伴有时需要扩大或限制所提交的驱动程序的 OS 分发。 本文介绍了每个相关的发货标签功能以及使用方法。
重要信息
在开始使用这些功能之前,应熟悉并牢记一些重要原则、术语和定义。
Windows Update:当向特定操作系统版本,例如 RS1(Windows 10,版本 1607)发布驱动程序时,Windows Update 会向运行 RS2、RS3 及更高版本(Windows 10,版本 1607、1703 和 1709)的系统提供驱动程序。 但它不会被提供给 TH1 或 TH2(Windows 10 版本 1507 或 1511)。 也就是说,驱动程序始终以前向方式提供。 在处理发货标签即插即用 (PNP) 网格中的操作系统和硬件 ID 组合时,记住这一原则尤为重要。 实际上,就上一示例来说,以前向方式提供驱动程序是指不需将同一硬件 ID 同时发布给 RS2 和 RS3。 Windows 更新会将 RS1 发布内容提供给 RS2 及更高版本。 你只需发布到最低的 OS 版本,即需要在 PNP 网格中将其作为目标的版本。
动态更新和 OS 下限:在 Windows 升级过程中调用 Windows 更新时,后者会按特殊的逻辑来重写客户端报告的当前 OS 版本信息,将其设置为目标功能更新版本。 例如,如果客户端目前使用 10.0.17763(Windows 10 版本 1809),需要升级到 10.0.18362(Windows 10 版本 1903),则动态更新会提供 18362 OS 边界内的驱动程序。 在使用下限功能时,了解这种区别尤为重要。 有关详细信息,请参阅了解适用于驱动程序分发的 Windows 更新自动和可选规则。
提交内容所有者:HLKx 或 .CAB 驱动程序包的原始提交者。 原始提交者会被授予使用“驱动程序扩展”功能的权限。 共享提交内容的接收者必须通过提交内容所有者来获取某些功能。
所需权限:只有指定为管理员的用户、发货标签所有者和发货标签推广者可以设置驱动程序提交下限和上限。 仅联合研发合作伙伴可以访问基于上限和内部版本号的功能。
下限和上限类型:驱动程序仪表板支持两种类型的下限和上限:
下限/上限类型 | 说明 |
---|---|
基于操作系统版本的类型 |
|
基于内部版本号的类型 |
|
设置 OS 下限
- 当你从 PNP 网格中选择硬件 ID 和 OS 组合时,系统会以隐式方式自动设置一个下限。 从 PNP 网格中选择的最低 OS 会成为隐式下限。
- 提交的最低认证 OS 级别最初决定了最低允许的 OS 下限,或经证明的 OS 级别。 如果需要设置低于这些自动确定级别的 OS 下限,则必须在设置 OS 下限之前执行驱动程序扩展。
OS 下限表示可以将驱动程序分发到的最低 Windows 版本。 要提高隐式下限,使驱动程序仅在所选操作系统及更高版本中提供时,请使用此功能。
最常见的用例在用例 2 进行了介绍。
设置 OS 下限的步骤
- 创建一个发货标签并输入详细信息。 有关详细信息,请参阅将驱动程序发布到 Windows 更新。
- 在“选择 PNP”网格区域中,选择至少一个硬件 ID 和操作系统组合,然后选择“发布”。
- 向下滚动到“限制操作系统进行驱动程序分发”部分,勾选“我要限制 OS 进行驱动程序分发”。 只有在 PNP 网格中的至少一个项上单击“发布”以后,此选项才会变得可用。
- 从“选择最低 OS 版本(下限)”下拉菜单中选取要向其分发驱动程序的最低 OS 版本。
如果为“OS 下限”选择的值低于 PNP 网格中列出的选项,则会收到以下错误。
设置 OS 上限
注意
仅允许具有有效业务需求的特定合作伙伴帐户访问“上限”功能。 如有问题,请联系支持人员。
上限表示分配驱动程序的 OS 上限。 如果希望驱动程序在已列出的操作系统版本或更低操作系统版本上提供,请使用此选项。
例如,如果选择的“上限”值为 RS3(Windows 10 版本 1709),则驱动程序将永远无法提供给运行 RS4(Windows 10,版本 1803)或更高版本的系统。
重要
只有在新的 OS 发生影响驱动程序基础功能的重大变更时,才应设置 OS 上限。 当请求设置 OS 上限时,Microsoft 会要求提交业务理由。
设置 OS 上限的步骤
- 创建一个发货标签并输入详细信息。 有关详细信息,请参阅将驱动程序发布到 Windows 更新。
- 在“选择 PNP”网格区域中,选择至少一个硬件 ID 和操作系统组合,然后选择“发布”。
- 向下滚动到“限制操作系统进行驱动程序分发”部分,选择“我要限制 OS 进行驱动程序分发”。 只有在 PNP 网格中的至少一个项上单击“发布”以后,此选项才会变得可用。
- 从“选择最高 OS 版本(上限)”下拉菜单中选择要向其分发驱动程序的最高 OS 版本。
注意
选择的 OS 上限不得高于在 PNP 网格中发布的最高 OS 版本。
如果选择无效,仪表板会显示以下错误。
驱动程序扩展:扩展驱动程序的最低操作系统目标
扩展驱动程序的分发时,请注意以下重要信息:
- 只能由原始提交内容所有者进行扩展。 共享提交内容的接收者看不到此选项。 (请参阅重要信息。)
- 每次提交只可执行一次扩展,且无法撤销。 如果扩展已完成,则按钮显示为灰色。
- 只能对其中的 INF 制造商部分不使用 BuildNumber] TargetOSVersion 修饰(例如 NTamd64.10.0...14393)的驱动程序进行扩展。
- 只有 Windows 8.1 驱动程序可以向上扩展到目标 Windows 10 系统。 Windows 10 驱动程序可以向下扩展。
- 扩展不会更改或扩大驱动程序的认证级别。 如果驱动程序是针对 RS5 认证的,扩展不会提供更低的 OS 认证。
驱动程序扩展让合作伙伴能够将所有版本的 Windows 10 作为目标。 它还使 Windows 10 系统能够接收 Windows 8.1 驱动程序。
它通过为提交包内的每个支持的 INF 创建一个新的“已扩展”PNP 网格条目(适用于 Windows 10 客户端版本 1506 和 1511 (TH1) 和 Windows Server 2016 x64 (TH1))来实现这一功能。 这适用于发货标签中的“共享”和“发布”工作流。 以下屏幕截图显示了 Windows 8.1 驱动程序的扩展按钮和 Windows 10 驱动程序的扩展按钮:
例如,以下提交已针对 Windows 10 客户端版本 1809 客户端 x64 (RS5) 进行了认证。 请注意,在扩展后创建了两个新的“已扩展”PNP 网格条目。
如果此提交中存在多个 INF,则其中的每个 INF 和硬件 ID 都将收到相同的新“已扩展”条目。 例外情况是,如果 INF 制造商部分使用 [BuildNumber] TargetOSVersion 修饰(例如 NTamd64.10.0...14393)。 这些 INF 会被跳过,无法进行扩展。 这意味着,最终在 PNP 网格中只有部分扩展的 INF 列表。 要扩展所有 INF 文件,必须编辑 INF,将 BuildNumber 删除。 另外,如果没有任何受支持的 INF,则可能根本看不到“展开”选项框。
有了“已扩展”条目后,即可共享或发布它。
大多数情况下都不希望将扩展的驱动程序提供给 TH1 及更高版本, 而是将其提供给介于二者之间的版本。 因此,在创建发货标签时,还必须记住设置 OS 下限。
以下是两种最常见的用例,以及如何实现的说明。 我们使用上面的 toaster 提交作为示例。
限制或扩展基于 OS 的驱动程序分发的用例
通过 toaster 示例(如上一屏幕截图所示),我们可以了解根据 OS 版本来设置驱动程序分发的两种更为常见的使用场景:
- 用例 1:IHV 将扩展的提交共享给 OEM:我的 OEM 希望面向 RS3 和 RS4 客户端,但我的提交仅在 RS5 上通过了认证。 我如何才能为 OEM 合作伙伴启用此功能,让他们能够创建自己的 Windows 更新发货标签?
- 用例 2:将扩展的提交发布到特定 OS 级别:我想要将 RS5 认证驱动程序发布到 Windows 更新,其目标是 RS3 及更高版本。 我该怎么做?
用例 1:IHV 与 OEM 共享扩展提交
作为提交内容所有者,只有你才能扩展自己的提交。
- 选择“扩展到较低版本的 Windows 10 (从 TH1 开始)”。
- 针对 OEM 所需的每个硬件 ID 选择“共享”,确保包括“Windows 10 客户端版本 1506 和 1511 x64 (TH1)”的“已扩展”条目。 实际上,这是需要与他们共享的唯一 OS 条目,因为 Windows 更新以前向方式提供更新(请参阅重要信息)。
- 滚动到页面底部,选择“发布”以完成共享操作。
- 通知 OEM 访问此页并阅读用例 2。
如果已经与合作伙伴共享了一个驱动程序,则可稍后将其扩展并共享已扩展项。 但请注意,原始共享提交已被弃用,合作伙伴只能使用你的最新共享提交。 有关弃用项目的详细信息,请参阅撤销硬件 ID 部分。
用例 2:将扩展的提交发布到特定 OS 级别
你想要将 Windows 10 RS5 (1809) 驱动程序发布到比 PNP 网格中列出的 OS 版本更低的版本,例如 RS3。 首先需扩展提交的内容。 如果此提交是你从 IHV 收到的,则必须由 IHV 完成扩展任务并将扩展的项共享给你(请参阅用例 1)。
完成驱动程序扩展后,就会为提交包内的每个支持的 INF 创建一个新的“已扩展”PNP 网格条目(适用于 Windows 10 客户端版本 1506 和 1511 (TH1) 和 Windows Server 2016 x64 (TH1))。 这是需要发布的项目之一,因此它的下限为 RS3。
- 针对 hid\toaster&col02 和“Windows 10 客户端版本 1506 和 1511 x64 (TH1)”项选择“发布”。 这样就会将隐式下限设置为 TH1。
- 发货标签在状态栏中显示为“待发布”,如下所示:
- 向下滚动到“限制操作系统进行驱动程序分发”部分,选择“我要限制 OS 进行驱动程序分发”。
- 从“选择此驱动程序的最低 OS 版本(下限)”下拉菜单中选择“RS3”。
- 滚动到页面底部,选择“发布”以完成发布请求。
此驱动程序会被发布,它适用于 RS3 及更高版本的所有 OS 版本。
常见问题解答
为什么我不能勾选“限制操作系统进行驱动程序分发”框?
请确保已针对“选择 PNP”部分的至少一个硬件 ID 条目选择“发布”。
“扩展到较低版本的 Windows 10 (从 TH1 开始)”框灰显或缺失
如果此框显示为灰色,则表示提交已经展开。
如果此框缺失,则表明存在下面的两种情况中的一种: 你不是初始提交的所有者,或者你的 INF 包含 BuildNumber 部分。 请参阅重要信息。
如何将早于我的驱动程序认证的 Windows 版本设为目标?
请参阅用例 2。
扩展后,我的部分 INF 缺失。 为何我不能扩展我的整个提交?
我们会针对扩展单独评估提交中的每个 INF。 如果一个或所有 INF(请参阅INF 制造商)使用 [BuildNumber] TargetOSVersion 修饰,则无法处理需要扩展的该 INF。 若需扩展提交,则必须先编辑 INF,将 [BuildNumber] 删除。 成功处理不包含 [BuildNumber] 的 INF。 有关详细信息,请参阅重要信息。