V4 驱动程序清单

重要

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

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

v4 打印驱动程序清单是一个文本文件,其中包含所有打印机特定的安装指令。 v4 打印驱动程序清单与 v4 打印驱动程序 INF 文件结合使用,作为特定于打印机的 v4 打印驱动程序设置的一部分。

清单中的指令分为多个部分:

DriverConfig 部分

下表显示了 DriverConfig 节中使用的指令。

指令 限制 使用情况

RequiredFiles

包括 ntprint.inf 或 ntprint4.inf 中的文件。

RequiredFiles 指令将支持 Windows 10 中的以下值:

PWGRRenderFilter.dll:将 Microsoft PWG 光栅呈现筛选器添加到驱动程序的依赖文件列表。

PWG 光栅呈现筛选器呈现筛选器要求驱动程序使用 PrintDeviceCapabilities 文件进行配置。

应从此列表中省略Unidrv.dll、pscript5.dll和mxdwdrv.dll。 它们将自动解析。

示例:

RequiredFiles=

UNIRES.DLL,STDNAMES。GPD,

V3HOSTINGFILTER.DLL

RequiredClass

使此驱动程序使用设备的驱动程序/友好名称及其 GUID 作为键包含定义的类驱动程序中的所有文件。 这是将打印类驱动程序链接到模型特定驱动程序的机制。

类驱动程序不能使用 RequiredClass 指令。 使用 RequiredClass 时,应避免打印机驱动程序与要链接到的打印类驱动程序之间的文件名冲突。

尽管名称相似的文件不会相互覆盖,但在故障排除期间,很难区分类驱动程序包文件和 v4 打印机驱动程序中的文件。

示例:

RequiredClass=

“Fabrikam PCL5e 类驱动程序”,{9343720D-B67E-4451-B93F-6F721C439771}

DriverFile

这指向呈现二进制文件。 Mxdwdrv 是默认的,但类驱动程序也可以指定unidrv.dll或pscript5.dll。 这在功能上与 v3 INF 中的同一指令相同。

只能在类驱动程序中设置。 有效选项unidrv.dll或pscript5.dll。 V4 打印驱动程序继承自 RequiredClass 或默认为 mxdwdrv.dll

DriverFile=

unidrv.dll

DataFile

这定义了此驱动程序的主 GPD 或 PPD。 这在功能上与 v3 INF 中的同一指令相同。

在Windows 10中,v4 打印驱动程序可以继续指定 GPD 或 PPD DataFile,但是,它们也可能描述采用 PrintDeviceCapabilities 格式的 DataFile。

必需。

示例:

DataFile=FAPDL.gpd

DataFile=FAPDL.xml

DataFileType

将 PrintDeviceCapabilities 文件描述为 DataFile 时,必须使用 DataFileType,也可以与基于 GPD 或 PPD 的 DataFile 一起使用。

PrintDeviceCapabilities 文件是必需的。

示例:

DataFileType=

“application/vnd.ms-PrintDeviceCapabilities+xml”

标志

这用于指定与驱动程序关联的其他可选属性。

不可共享:此标志指定驱动程序不可共享。 这适用于虚拟驱动程序,例如 Microsoft XPS 文档编写器。 SoftResetOnJobCancellation:此标志指定设备在打印作业取消时需要 USB 软重置 (IOCTL_USBPRINT_SOFT_RESET) 。 ArchiveEnabled v4 驱动程序使用此标志请求存档优化的 XPS 作为后台打印文件。

无。

示例:

Flags=

NotShareable,

SoftResetOnJobCancellation

Flags=

ArchiveEnabled,NotShareable

PrinterDriverID

这是描述打印驱动程序的唯一 ID。 如果两个驱动程序指定相同的 PrinterDriverID,则它们必须兼容共享并支持相同的打印机扩展。

必需。

PrinterDriverID=

{guid}

PropertyBag

指定此驱动程序的驱动程序属性包。 这是由 DriverPropertyBagTool.exe 或 Visual Studio 生成的已编译文件。

无。

PropertyBag=

FAProperty.dpb

ResourceFile

定义驱动程序的字符串资源 DLL 的名称。

在Windows 10中,驱动程序可以使用 .resx 格式指定 ResourceFile。

无。

示例:

ResourceFile=

FARC.dll

ConstraintScript

定义驱动程序的 JavaScript 约束文件的名称。

无。

ConstraintScript=

FAConst.js

DriverCategory

在多个选项之一之间定义设备的类别。 有效选项如下所示:

PrintFax.Fax PrintFax.Printer PrintFax.Printer.3D PrintFax.Printer.File PrintFax.Printer.Service PrintFax.Printer.Virtual

必需。

DriverCategory=

PrintFax.Printer

有关其他驱动程序类别的详细信息,请参阅 打印机 INF 文件条目

PrinterExtensionUrl

指定用于获取打印机扩展应用副本的用户的 URL。 用于打印机共享。

无。

PrinterExtensionUrl=

"https://www.fabrikam.com/files/setup.exe";

DevModeMap

指定 Devmode 映射文件。 这是一个 XML 文件,用于在 JavaScript 代码中将 PrintTicket 转换为 DEVMODE。

无。

DevModeMap=

fadmmap.xml

EventFile

指定驱动程序事件 XML 文件。

无。

EventFile=

faevents.xml

QueueProperties

指定队列属性包的格式。 这是一个 XML 文件,不得编译。

无。

QueueProperties=

faQueueProps.xml

BidiUSBStatusInterface

指定与用于 USB Bidi 通信的一个或多个设备接口匹配的硬件 ID 列表。

无,但仅当状态是通过不是打印接口的 USB 接口完成时,才应受支持。

BidiUSBStatusInterface=

“USB\vid_1234&pid_1234”,

“USB\vid_1234&pid_4567”

UserPropertyBagScope

此指令将用户属性包的范围指定为 Queue 或 Manufacturer。

如果省略此指令,则 Queue 为默认值。 此指令的有效选项如下所示:

队列:这是默认配置,它与Windows 8行为匹配。 制造商:在 INF 中使用同一制造商字符串的所有队列都使用相同的用户属性包。

无。

UserPropertyBagScope=

制造商

RetrievePrintDeviceCapabilitiesFromDevice

v4 驱动程序可以指定它们必须从 WS-Print v2.0 打印机检索 PrintDeviceCapabilities 文件,只要它们将 PrintDeviceCapabilities 文件设置为驱动程序的 DataFile 且 DataFileType 也指示 DataFile 为 MIME 类型“application/vnd.ms-PrintDeviceCapabilities+xml”。 有效选项:

有效选项:

True:允许将驱动程序的本地 DataFile 替换为设备的 PrintDeviceCapabilities 文件。

False:不会将驱动程序的本地 DataFile 替换为设备的 PrintDeviceCapabilities 文件。

如果未指定,则此指令的默认值为 false。

无。

示例:

RetrievePrintDeviceCapabilitiesFromDevice=

true

BidiFiles 部分

BidiFiles 部分用于定义 Bidi 扩展文件。 它与适用于 TCP 和 WSD 的 Windows 7 格式相同。 USB 关键字是新的。

下表显示了 BidiFiles 节中使用的指令。

指令 限制 使用情况

BidiSPMFile

这将定义基于 TCP/IP 的打印机的 Bidi 扩展文件。

无。

BidiSPMFile=FaBidiSPM.xml

BidiWSDFile

这将定义基于 WSD 的打印机的 Bidi 扩展文件。

无。

BidiWSDFile=FABidiWSD.xml

BidiUSBFile

这定义了 USB 的 Bidi 扩展。

无。

BidiUSBFile=FABidiUSB.xml

BidiUSBJSFile

这定义了适用于 USB 的 JavaScript 扩展。

无。

BidiUSBJSFile=FABidiUSBJS.js

DriverRender 部分

下表显示了 DriverRender 节中使用的指令。

指令 限制 使用情况

PageOutputQuality。[OptionName]

根据 PageOutputQuality 作业 PrintTicket 中的值更改图像压缩

OptionName 必须是在标准 PrintSchema 命名空间中指定的名称。

PageOutputQuality.Draft=

MxdcImageType.JPEGHigh

PageOutputQuality.Normal=

MxdcImageType.JPEGMedium

PageOutputQuality.High=

MxdcImageType.PNG

XpsFormat

更改打印系统为此驱动程序生成的 XPS 格式。 可以指定多个值,顺序表示驱动程序的首选项。

不适用于使用 Unidrv/PScript 呈现的类驱动程序。

XpsFormat=XPS

XpsFormat=OpenXPS

XPSFormat=OpenXPS,XPS

XPSFormat=XPS,OpenXPS

OutputFormat

OutputFormat 指令描述此驱动程序使用 MIME 类型生成的单个 PDL。

此信息将在 WSD 打印机的 CreateJob 或 CreateJob2 操作期间使用。

无。

有效的使用类型包括:

OutputFormat=

“application/oxps”

OutputFormat=

“application/vnd.ms-xpsdocument”

OutputFormat=

“image/pwg-raster”

OutputFormat=

“application/vnd.ms-3mfdocument”

还可以在此处指定任何其他有效的已定义的 MIME 类型。

PageOutputQuality 指令的 MxdcImageType 关键字具有以下允许值:

MxdcImageType 值

MxdcImageType.JPEGHigh

高压缩 JPEG (较小的文件)

MxdcImageType.JPEGMedium

中等压缩 JPEG

MxdcImageType.JPEGLow

低压缩 JPEG

MxdcImageType.PNG

PNG 文件类型 (最大文件)

FileSave 部分

本部分支持文件保存方案。 针对新的 PORTPROMPT 端口类型安装 v4 打印驱动程序时,本部分指定要在 “通用文件” 窗口中显示的文件扩展名,并指定支持扩展和对话框本身的可本地化资源字符串。

指令 限制 使用情况

<FileExtensionName>

此指令描述了使用 PORTPROMPT 端口从此驱动程序保存文件时要使用的 FileExtension。 该值是驱动程序的 ResourceFile 中的 resourceID。 仅对于 XPS 和 OXPS,可以指定 resourceID 0,打印后台处理程序将使用这些内部资源。

无。

<FileExtensionName>=

<resourceID>

Xps=1234

SaveAsTitle

此指令描述要用于“保存文件”对话框的标题。 该值是驱动程序的 ResourceFile 中的 resourceID。

无。

SaveAsTitle=

<resourceID>

SaveAsTitle=

4321

PrinterExtensions 部分

PrinterExtensions 部分指定打印机扩展及其支持的调用模式。 对于这两个条目,应用将自动注册到打印系统。 此外,应用将按该顺序配置两个不同的参数,即 PrinterDriverID 和 ReasonID。 因此,每个条目都必须使用不同的 PrinterExtensionID GUID。

下表显示了 PrinterExtensions 节中使用的指令。

指令 限制 使用情况

DriverEvent

为 DriverEvent 模式提供服务的应用。

无。

DriverEvent=

app.exe,{extensionID GUID}

打印首选项

为打印首选项模式提供服务的应用。

无。

PrintPreferences=

app.exe,{extensionID GUID}

下面是 v4 打印驱动程序清单的示例。

[DriverConfig]
DataFile=FAPDL.xml
RequiredFiles=UNIRES.DLL,STDNAMES.GPD,STDDTYPE.GDL,STDSCHEM.GDL,STDSCHMX.GDL,XPSSVCS.DLL,MSXPSINC.GPD,PWGRRenderFilter.DLL
ResourceFile=FARC.dll
PropertyBag=FAProperty.dpb
PrinterDriverID={GUID}
DriverCategory=PrintFax.Printer
ConstraintScript=faconst.js
EventFile=faevents.xml
PrinterExtensionUrl="https://www.fabrikam.com/download.asp?uiapp=120"
UserPropertyBagScope=Manufacturer
DataFileType="application/vnd.ms-PrintDeviceCapabilities+xml"
RetrievePrintDeviceCapabilitiesFromDevice=true

[BidiFiles]
BidiSPMFile=FABidiSPM.xml
BidiWSDFile=FABidiWSD.xml
BidiUSBFile=FaBidiUSB.xml
BidiUSBJSFile=FABidiUSBJS.js

[DriverRender]
PageOutputQuality.Draft=MxdcImageType.JPEGHigh
PageOutputQuality.Normal=MxdcImageType.JPEGMedium
PageOutputQuality.High=MxdcImageType.PNG
OutputFormat="image/pwg-raster"

[PrinterExtensions]
DriverEvent=FAapp.exe,{GUID}
PrintPreferences=FAapp.exe,{GUID2}

打印机 INF 文件项