打印支持应用关联

重要

一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。

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

注意

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

本主题讨论以下任务:

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

  • 准备 psa.inf 扩展名 INF 文件

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

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

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

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

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

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

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

  2. 控制面板中,选择“查看设备和打印机”。

  3. 右键单击打印机,然后从上下文菜单中选择 “属性 ”。

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

  5. 在“ 属性 ”对话框中,选择“ 详细信息”,然后选择 “硬件 ID ” (或“兼容 ID”) 。

  6. 复制硬件 ID 字符串, (它以“PSA_”) 开头。 对于扩展 INF,或者,兼容 ID (不需要以“PSA_”) 开头。

准备 PSA 扩展 INF 文件

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

以下是创建和测试扩展 INF 文件的步骤:

  1. 复制以下为 INF 文件的起始点的 psa.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

[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 10 上测试安装扩展 INF

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

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

    pnputil.exe /add-driver psa.inf
    

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

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

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

注册表项可用于从扩展 INF 替代 PSA 关联。 此注册表项方法可用于具有Windows打印服务器 (点和打印) 和通用打印的企业客户。

下面是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!应用”

注册表编辑器中的 PSA 密钥:

P S A key in registry editor

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

P S A key in edit multi string dialog

将 PSA 与通用打印配合使用

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

注意

不支持使用 通用打印连接器 的打印机与 PSA 一起使用。

可以在 控制面板中找到通用打印打印机的硬件 ID,类似于本地 IPP 打印机:

  1. 控制面板中,选择“查看设备和打印机”。

  2. 右键单击打印机,然后从上下文菜单中选择 “属性 ”。

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

  4. 在“ 属性 ”对话框中,选择“ 详细信息”,然后选择“ 硬件 ID”。

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

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

另请参阅

打印支持应用设计指南

Windows。Devices.Printer

Windows。Graphics.Printing.PrintSupport

Windows。Graphics.Printing.Workflow

Internet 打印协议 (IPP) 规范