打印支持应用关联

按照本文中的指南设置打印支持应用并将其与打印机相关联。

重要

从 Windows 11 SDK (22000.1) 开始,打印支持应用 (PSA) 是开发适用于打印机的 UWP 应用的建议方法。 要为打印设备开发打印支持应用,请下载并安装 Windows 11 SDK (22000.1)

本文将讨论以下任务:

  • 查找打印机的硬件 ID 或兼容 ID

  • 准备 psa.inf 扩展 INF 文件

  • 在 Windows 11 电脑上安装 psa.inf 扩展 INF 文件

  • 适用于企业和商业客户的 PSA 关联替代

  • 将 PSA 与通用打印配合使用

设置打印机并查找硬件 ID 或兼容 ID

打印支持应用 (PSA) 使用硬件 ID 或兼容 ID 与打印机队列相关联。

要查找打印机的硬件 ID 和兼容 ID,请执行以下步骤:

  1. 将 IPP 打印机连接到 Windows 11 电脑。

  2. 在 Windows 11 设置应用中,选择“蓝牙和设备”。

  3. 在“蓝牙和设备”页上,选择“打印机和扫描仪”。

  4. 选择 IPP 打印机。

  5. 在 IPP 打印机页上,选择“硬件属性”。

  6. 在打印机硬件属性对话框中,选择“设置”选项卡。

  7. 单击“设备和打印机文件夹”。

  8. 右键单击 IPP 打印机并从上下文菜单中选择“属性”。

  9. 在“硬件”选项卡上,在“设备功能”列表中选择“Microsoft IPP 类驱动程序”,然后单击“属性”按钮。

  10. 在“Microsoft IPP 类驱动程序属性”对话框中,选择“详细信息”选项卡。

  11. 在“属性”下拉列表中,选择“硬件 ID”(或“兼容 ID”)。

  12. 复制“值”列表中的硬件 ID 字符串(以“PSA_”开头)。 扩展 INF 或兼容 ID(不以“PSA_”开头)都需要此项。

准备 PSA 扩展 INF 文件

PSA 使用扩展 INF 文件与打印机相关联。

以下步骤创建并测试扩展 INF 文件:

  1. 复制如下所示的 psa.inf 示例扩展 INF 作为 INF 文件的起点。

  2. 使用硬件 ID 或兼容 ID 更新 psa.inf 文件中的 PrinterHardwareId

  3. 更新 PSA 应用程序的 PackageFamilyNameAUMID (AppUserModeId)。

  4. 创建目录文件

  5. 对 psa.cat 文件示例扩展 INF 进行签名。

psa.inf 示例扩展 INF 文件

[Version]
Signature = "$WINDOWS NT$"
Class = Extension
ClassGuid = {e2f84ce7-8efa-411c-aa69-97454ca4cb57}
Provider = %ManufacturerName%
ExtensionId = {D4D9196A-105B-4B76-B693-84BD33A7A703}
CatalogFile = psa.cat
DriverVer = 05/19/2020,16.35.13.542
PnpLockdown = 1

[Manufacturer]
%ManufacturerName% = Microsoft, NTamd64.6.3

[Microsoft.NTamd64.6.3]
%Device.ExtensionDesc% = PSA-Install, %PrinterHardwareId%
%Device.ExtensionDesc% = PSA-Install, %PrinterHardwareId2%
%Device.ExtensionDesc% = PSA-Install, %PrinterHardwareId3%

[PSA-Install.NT]
AddProperty = Add-PSA-Property

[PSA-Install.NT.Software]
AddSoftware = %SoftwareName%,, Microsoft-PSA-SoftwareInstall

[Microsoft-PSA-SoftwareInstall]
SoftwareType = %MicrosoftStoreType%
SoftwareID = pfn://%PackageFamilyName%

[Add-PSA-Property]
{A925764B-88E0-426D-AFC5-B39768BE59EB}, 1, 0x12,, %AUMID%

[Strings]
ManufacturerName = "Microsoft"
SoftwareName = "Microsoft Print Support App"
Device.ExtensionDesc = "Print Support App Extension"
MicrosoftStoreType = 2
PackageFamilyName = "dd5de805-d9bb-4785-88e9-399cbff2130e_ph1m9x8skttmg"
AUMID = "dd5de805-d9bb-4785-88e9-399cbff2130e_ph1m9x8skttmg!App"
PrinterHardwareId = "PSA_CanoniP110_seriesD84F"
PrinterHardwareId2 = "PSA_XeroxAltaLink_B8055C036"
PrinterHardwareId3 = "PSA_BrotherMFC-J775DWF678"

在 Windows 11 上测试安装扩展 INF

  1. 如果使用自签名证书对 .cat 文件进行签名,请将根证书导入受信任的存储。

  2. 打开提升的命令提示符并运行以下命令:

    pnputil.exe /add-driver psa.inf
    

适用于企业和商业客户的 PSA 关联替代

对于消费者和家庭用户,PSA 将从 Microsoft Store 下载,并基于打印机的硬件 ID 或兼容 ID 进行安装。如果企业和商业客户选择使用打印机制造商提供的 PSA,则也支持此功能。 关联由打印机制造商在 Windows 更新上发布的扩展 INF 控制。

如果企业和商业客户选择使用业务逻辑 PSA(例如业务线应用),可能需要覆盖扩展 INF 关联。 他们需要部署并关联具有内置业务逻辑的自定义 PSA。 业务逻辑的示例包括管理打印配额和成本,或打印策略(无颜色或无单面打印)。

注册表项可用于替代扩展 INF 中的 PSA 关联。 此注册表项方法可用于具有 Windows Print Server(指向和打印)和通用打印的企业客户。

下面是 PSA 关联方式的排名:

  1. 打印机制造商的自定义 v3/v4 驱动程序从 Windows 更新下载(不使用 PSA)

  2. 注册表项用于关联 PSA

  3. 扩展 INF 用于关联 PSA

  4. 不带 PSA 的 IPP 打印

我们建议企业客户使用 Microsoft Endpoint Manager 分发注册表项。 他们也可以使用 Endpoint Manager 来部署自定义 PSA。

注册表项定义如下:

项目
注册表项路径 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\PSA\Association
名称 硬件 ID 或兼容 ID
类型 REG_SZ
PSA AUMID,例如,“dd5de805-d9bb-4785-88e9-399cbff2130e_ph1m9x8skttmg!App”

注册表编辑器中的 PSA 项:

P S A key in registry editor

“编辑多字符串”对话框中的“值名称”和“值数据”:

P S A key in edit multi string dialog

将 PSA 与通用打印配合使用

可以将 PSA 与本机支持通用打印的打印机相关联。

重要

Microsoft 不支持使用通用打印连接器的打印机与 PSA 配合使用。 但是,在某些情况下,使用通用打印连接器的打印机可能受提供 PSA 和打印机硬件的原始设备制造商(“OEM”)的支持。 请咨询 OEM。 OEM(而不是 Microsoft)将负责与此 OEM 启用和支持相关的问题。

可以在 Windows 11“设置”应用中找到通用打印打印机的硬件 ID,类似于本地 IPP 打印机:

  1. 在 Windows 11 设置应用中,选择“蓝牙和设备”。

  2. 在“蓝牙和设备”页上,选择“打印机和扫描仪”。

  3. 选择通用打印打印机。

  4. 在“通用打印打印机”页上,选择“硬件属性”。

  5. 在打印机硬件属性对话框中,选择“设置”选项卡。

  6. 单击“设备和打印机文件夹”。

  7. 右键单击你的打印机并从上下文菜单中选择“属性”。

  8. 在“硬件”选项卡上,在“设备功能”列表中选择“通用打印类驱动程序”,然后单击“属性”按钮。

  9. 在属性对话框中,选择“详细信息”选项卡。

  10. 在“属性”下拉列表中,选择“硬件 ID”。

硬件 ID 是打印机中的打印机设备 ID IPP 属性。

printer device id I P P attribute from the printer properties dialog

打印支持应用设计指南

Windows.Devices.Printers

Windows.Graphics.Printing.PrintSupport

Windows.Graphics.Printing.Workflow

Internet 打印协议 (IPP) 规范