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 作为密钥包含已定义类驱动程序中的所有文件。 这是将 printclass 驱动程序链接到模型特定驱动程序的机制。
类驱动程序无法使用 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”
标记

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

NotShareable:此标志指定驱动程序不可共享。 这适用于虚拟驱动程序,例如 Microsoft XPS 文档编写器。

SoftResetOnJobCancellation:此标志指定设备在打印作业取消时需要 USB 软重置(IOCTL_USBPRINT_SOFT_RESET)。 ArchiveEnabled v4 驱动程序使用此标志请求存档优化的 XPS 作为后台处理程序文件。
无。 示例:

Flags=
不可共享,
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 文件,与 PrintTicket 一起使用,用于 JavaScript 代码中的 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

此指令将用户属性包的范围指定为队列或制造商。
如果省略此指令,则队列为默认值。 此指令的有效选项如下所示:

队列:这是默认配置,它与 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=

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
应用为 PrintPreferences 模式提供服务。
无。 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 文件条目