共用方式為


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=
NotShareable,
SoftResetOnJobCancellation
Flags=
ArchiveEnabled,NotShareable
PrinterDriverID

這是描述列印驅動程式的唯一標識符。 如果兩個驅動程式指定相同的 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 通訊之一或多個裝置介面的硬體識別碼清單。
無,但只有在不是列印介面的USB介面上完成狀態時,才應該支援。 BidiUSBStatusInterface=
“USB\vid_1234&pid_1234”,
“USB\vid_1234&pid_4567”
UserPropertyBagScope

此指示詞會將使用者屬性包的範圍指定為佇列或製造商。
如果省略此指示詞,則 Queue 是預設值。 此指示詞的有效選項如下所示:

佇列:這是預設組態,且符合 Windows 8 行為。 製造商:INF 中使用相同製造商字串的所有佇列都會使用相同的使用者屬性包。
無。 UserPropertyBagScope=
製造商
RetrievePrintDeviceCapabilitiesFromDevice

v4 驅動程式可能會指定他們必須從 WS-Print v2.0 印表機擷取 PrintDeviceCapabilities 檔案,只要它們將 PrintDeviceCapabilities 檔案設定為驅動程式的 DataFile,DataFile 也表示 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 區段

本節支援檔案儲存案例。 當 v4 列印驅動程式針對新的 PORTPROMPT 埠類型安裝時,本節會指定要顯示在 [通用檔案] 視窗中的擴展名,並指定支援延伸模組和對話方塊本身的可當地語系化資源字串。

指示詞 限制 使用方式
<FileExtensionName>
此指示詞描述使用 PORTPROMPT 埠從此驅動程式儲存盤案時要使用的 FileExtension。 此值是驅動程式 ResourceFile 中的 resourceID。 針對 XPS 和 OXPS,只能指定 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=
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 檔案專案