生成基本 v4 打印机驱动程序

重要

建议使用 Microsoft 的 IPP 收件箱类驱动程序,以及 Print Support Apps (PSA) ,在 Windows 10 和 11 中自定义打印体验,以便进行打印机设备开发。

有关详细信息,请参阅 打印支持应用设计指南

重要

Microsoft 已宣布对旧版 v3 和 v4 打印机驱动程序的生命周期终止服务。

有关详细信息,请参阅 Windows 上第三方打印机驱动程序的服务终止计划

警告

此打印机驱动程序教程包含多个错误,目前不可用。

使用 Microsoft Visual Studio 2019 中的驱动程序开发向导来生成基本 v4 打印机驱动程序,以选择创建功能打印机驱动程序的最低功能集。

本主题中的说明将重点介绍生成驱动程序所需的步骤,不会解释向导中可用的许多打印机驱动程序选项。

本主题的目的是介绍在 Visual Studio 2019 中开发打印机驱动程序时所涉及的过程。

在向导中浏览驱动程序选项中提供了打印机 驱动程序选项的更详细介绍。

先决条件

按照 下载 Windows 驱动程序工具包 (WDK) 中的指南进行操作,并确保已完成以下各项:

  1. 安装 Visual Studio 2019,其中包含使用 C++ 的桌面开发工作负载和正确版本的 Windows 10 SDK

  2. (适用于 Windows 10 版本 2004 的 WDK) 安装 Windows 驱动程序工具包。

  3. 安装适用于 Visual Studio 2019 的 Windows 驱动程序工具包 (WDK) 扩展。

选择基本驱动程序的功能

  1. 在 Visual Studio 的“main”菜单中,选择“文件>新建>项目”。

  2. “新建项目” 窗口的右上方搜索框中,键入 打印机驱动程序 v4 ,然后按 Enter。 这将检索名称包含搜索文本的所有驱动程序模板。

  3. 在中间窗格中,选择“ 打印机驱动程序 V4”。

  4. 在“名称”字段中键入驱动程序 的名称 ,然后选择“ 确定”。 例如,可以键入 MyV4PrintDriver

  5. “创建 v4 打印驱动程序向导”的“ 选择驱动程序呈现类型”下,选择“ 具有自定义呈现筛选器的 V4 打印驱动程序” (仅接受 XPS)

  6. 将所有其他选项保留为其默认设置,然后选择“ 下一步”。

  7. 在向导的 “设置信息 ”部分中,将所有选项保留为其默认设置,然后选择“ 下一步”。

  8. 在向导 (第 2 页) 部分中,将所有选项保留为默认设置,然后选择“ 下一步”。

Microsoft Visual Studio 使用上述选择为 MyV4PrintDriver 生成项目文件。

验证生成的驱动程序文件

  1. 导航到生成的驱动程序文件的文件夹。 例如,如果将项目命名为 MyV4PrintDriver,则默认情况下,文件将保存到以下位置:My Documents > Visual Studio 2019 > Projects > MyV4PrintDriver MyV4PrintDriver>

  2. 验证文件夹是否包含以下文件:

    文件名 文件类型
    MyV4PrintDriver.gpd 打印机说明文件
    MyV4PrintDriver.inf 安装程序信息文件
    MyV4PrintDriver.vcxproj C++ 项目文件
    MyV4PrintDriver.vcxproj.filters C++ 项目筛选器文件
    MyV4PrintDriver-manifest.ini (打印驱动程序清单的配置设置文件)
    V4PrintDriver-Intellisense.js 用于 Intellisense 的 JavaScript 文件
    V4PrintDriver-Intellisense-Windows8.1.js 用于 Intellisense 的 JavaScript 文件

请注意,在上表中,创建的其中一个文件是 INF 文件。 请注意,Visual Studio 创建了一个必须完成的框架 INF 文件,以便可用于安装驱动程序。

为驱动程序创建唯一的 PrinterDriverID

  1. 在“Visual Studio Tools”菜单中,选择“创建 GUID”。

  2. 选择选项 4。注册表格式 ,然后选择“ 复制 ”按钮。

  3. 在 Visual Studio 的解决方案资源管理器中,展开“MyV4PrintDriver”节点。

  4. 选择“ 驱动程序文件”,然后在 “属性” 窗口中查看 “唯一标识符” 字段的值。 将此值替换为使用 粘贴生成的 GUID。

完成 INF 文件

在 MyV4PrintDriver 项目中,应有 一个驱动程序文件的条目。 打开此文件,应列出文件 MyV4PrintDriver.inf。 打开此文件。

INF 文件的前 2 行是驱动程序包的版权声明。

第 1 行包含公司的年份和名称。 将字符 YYYY 替换为当前年份,将字符 <“制造商名称> ”替换为公司名称。

第 2 行介绍了驱动程序 INF 的内容,包括制造商名称和设备型号信息。 将“制造商名称>”字符<替换为公司名称,并将“打印机型号>”的<字符替换为驱动程序支持的打印机的型号名称。

例如,如果年份为 2021,公司名称为 Fabrikam,打印设备型号为 1234,则键入以下内容:

; Copyright (c) 2021 Fabrikam
; INF file for the Fabrikam 1234 print driver

2. 验证 [版本] 部分是否正确

查找包含 [Version] 的行。

  • 检查并确保看到以下行:

    ClassVer=4.0
    
  • 检查并确保看到以下行:

    Signature="$WINDOWS NT$"
    

3. 配置 [SourceDisksFiles] 部分

查找包含 [SourceDisksFiles] 的行。

在此下方键入以下行:

MyV4PrintDriver.gpd=1
MyV4PrintDriver-manifest.ini=1
MyV4PrintDriverRenderFilter-PipelineConfig.xml=1
MyV4PrintDriverRenderFilter.dll=1

4. 配置 [DriverFiles] 部分

查找包含 [DriverFiles] 的行。

在此下方键入以下行:

MyV4PrintDriver.gpd
MyV4PrintDriver-manifest.ini
MyV4PrintDriverRenderFilter-PipelineConfig.xml
MyV4PrintDriverRenderFilter.dll

5. 配置 [Standard.NT$ARCH$] 部分

查找包含 [Standard.NT$ARCH$] 的行。

本部分引用 Install 每个模型的 INF 部分。 例如,如果打印机的型号为 Fabrikam 1234,则键入以下内容:

"Fabrikam 1234"=DriverInstall, USBPRINT\\Fabrikam1234
"Fabrikam 1234"=DriverInstall, WSDPRINT\\Fabrikam1234

6. 将 PrinterDriverID 添加到 INF 文件

在 Visual Studio 的解决方案资源管理器中,展开“MyV4PrintDriver”节点。

选择“ 驱动程序文件”,然后在 “属性” 窗口中查看 “唯一标识符” 字段的值。 这是 GUID) (驱动程序 ID。 突出显示并复制它。

在 INF 文件的 [Standard.NT$ARCH$] 部分中,键入以下行:

"Fabrikam 1234"=DriverInstall,

然后在逗号后面粘贴在上一步中复制的 GUID。 已完成的 [Standard.NT$ARCH$] 部分应如下所示:

"Fabrikam 1234"=DriverInstall, {GUID}
"Fabrikam 1234"=DriverInstall, USBPRINT\Fabrikam1234
"Fabrikam 1234"=DriverInstall, WSDPRINT\Fabrikam1234

7. 配置 [字符串] 部分

查找包含 [Strings] 的行。

在此下方,你将找到 ManufacturerName 字符串的定义。 将字符 <“你的制造商名称> ”替换为公司名称,以提供目标打印机的制造商名称,并删除包含 的行的其余部分;Todo:

例如,如果公司的名称是 Fabrikam,则键入以下内容:

ManufacturerName="Fabrikam"

8.保存 INF 文件

完成 INF 文件时,该文件应如下所示:

; Copyright (c) 2021 Fabrikam
; INF file for the Fabrikam 1234 print driver

[Version]
Signature="$Windows NT$"
Class=Printer
ClassGuid={4D36E979-E325-11CE-BFC1-08002BE10318}
Provider=%ManufacturerName%
CatalogFile=MyV4PrintDriver.cat
ClassVer=4.0
DriverVer=03/17/2014,1.0.0.0
PnpLockdown=1

[Manufacturer]
%ManufacturerName%=Standard,NT$ARCH$

[Standard.NT$ARCH$]
"Fabrikam 1234"=DriverInstall, {GUID}
"Fabrikam 1234"=DriverInstall, USBPRINT\Fabrikam1234
"Fabrikam 1234"=DriverInstall, WSDPRINT\Fabrikam1234

[DriverInstall]
CopyFiles=DriverFiles

[DriverFiles]
MyV4PrintDriver.gpd
MyV4PrintDriver-manifest.ini
MyV4PrintDriverRenderFilter-PipelineConfig.xml
MyV4PrintDriverRenderFilter.dll

[DestinationDirs]
DefaultDestDir = 66000

[SourceDisksNames]
1 = %DiskName%,,,""

[SourceDisksFiles]
MyV4PrintDriver.gpd=1
MyV4PrintDriver-manifest.ini=1
MyV4PrintDriverRenderFilter-PipelineConfig.xml=1
MyV4PrintDriverRenderFilter.dll=1

[Strings]
ManufacturerName="Fabrikam"
DiskName="MyV4PrintDriver Installation Disk"

更新 驱动程序文件 列表

  1. 在 Visual Studio 的解决方案资源管理器中,展开 MyV4PrinterDriver 节点。

  2. 选择“MyV4PrintDriver.gpd”文件并将其拖到“ 驱动程序文件” 节点。

  3. 对 MyV4PrintDriver-manifest.ini 执行相同操作。

将管道配置文件添加到驱动程序包

  1. 解决方案资源管理器中,选择并按住 (或右键单击“) MyV4PrintDriver 项目”,然后选择“属性”。

  2. “MyV4PrintDriver 属性页” 窗口中,展开左窗格中的 “配置属性 ”。

  3. 展开 “驱动程序安装”,然后选择“ 包文件”。

  4. 在右窗格中,选择,然后单击 <列出的文件中的“编辑...”> 行。

    选择包文件编辑行。

  5. 将 占位符替换为管道配置文件的相对路径,例如 ../MyV4PrintDriver Render Filter/MyV4PrintDriverRenderFilter-PipelineConfig.xml,然后单击“ 确定”。

    将占位符替换为相对路径。

将对呈现筛选器的引用添加到驱动程序包

  1. 在 Visual Studio 的解决方案资源管理器中,展开 MyV4PrinterDriver 节点。

  2. 选择并按住 (或右键单击“ 引用 ”节点) -> 选择“ 添加引用”。

  3. 选择“MyV4PrintDriver 呈现筛选器”的“检查”框,然后选择“确定”。

配置用于调试和部署的驱动程序解决方案

  1. 解决方案资源管理器中,选择并按住 (或右键单击“) MyV4PrintDriver 项目”,然后选择“属性”。

  2. “MyV4PrintDriver 属性页” 窗口中,展开左窗格中的 “配置属性 ”。

  3. 展开 “驱动程序安装”,然后选择“ 部署”。 在右窗格中执行以下操作:

    • 确保已配置 目标计算机名称 。 如果没有,请选择“...”并按照 配置设备 向导中的提示设置远程目标计算机。

    • 选中“部署前删除以前的驱动程序版本” 。

    • 选择 “安装/重新安装并验证”,然后从下拉框中选择“ 默认打印机驱动程序包安装任务 ”。

    • 在“ 可选参数” 字段中键入驱动程序的名称, (名称) 周围没有任何引号。

    • 选择“确定” 。

配置驱动程序签名

  1. 解决方案资源管理器中,选择并按住 (或右键单击“) MyV4PrintDriver 项目”,然后选择“属性”。

  2. “MyV4PrintDriver 属性页” 窗口中,展开左窗格中的 “配置属性 ”。

  3. 展开 “驱动程序签名”,然后选择“ 常规”。

  4. 在右窗格中,确认 “签名模式 ”设置为“测试签名”。

  5. 选择“ 测试证书”,然后从下拉框中选择“ 创建测试证书...”

  6. 选择“ TimeStampServer”,然后从下拉框中选择“Verisign”。

  7. 选择“确定” 。

生成和部署驱动程序

  1. “解决方案资源管理器”中,选择并按住 (或右键单击“) 解决方案 MyV4PrintDriver (2 个项目) ”,然后选择“生成解决方案”。

  2. 生成过程完成后,将自动安装驱动程序。 请确保 “输出 ”窗口中没有错误。

测试驱动程序

使用即插即用或 添加打印机向导创建打印队列。

有关 v4 打印机驱动程序的 INF 文件的详细信息,请参阅 V4 驱动程序 INF

除了上表中的文件外,请注意已创建 MyV4PrintDriver 呈现筛选器 文件夹。 这是呈现器筛选器项目模板,它为生成 XPS 呈现筛选器和 XPS 筛选器管道配置文件提供了良好的基础。 有关 XPS 呈现筛选器的详细信息,请参阅 XPSDrv 呈现模块;若要查看 XPS 呈现筛选器的示例,请参阅 XPS 光栅化筛选器服务 示例。