V4 ドライバー マニフェスト

重要

Windows でプリンターとの通信手段として推奨されるのは、最新の印刷プラットフォームです。 プリンターデバイス開発におけるWindows 10および11での印刷体験をカスタマイズするために、MicrosoftのIPPインボックスクラスドライバーとPrint Support Apps (PSA)の使用を推奨します。

詳細については、最新の印刷プラットフォームに関する記事および「印刷サポート アプリの設計ガイド」を参照してください。

v4 印刷ドライバー マニフェストは、プリンター固有のすべてのセットアップ ディレクティブを含むテキスト ファイルです。 v4 印刷ドライバー マニフェストは、プリンター固有の v4 印刷ドライバーのセットアップの一部として、v4 印刷ドライバー INF ファイルと共に使用されます。

マニフェスト内のディレクティブは、次のセクションに分かれています。

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]

DataFileType は、PrintDeviceCapabilities ファイルを DataFile として記述するときに使用する必要があり、GPD または PPD ベースの DataFile でも使用できます。
PrintDeviceCapabilities ファイルに必要です。 例:

DataFileType=
"application/vnd.ms-PrintDeviceCapabilities+xml"
Flags

これは、ドライバーに関連付けられているオプションの省略可能な属性を指定するために使用されます。

NotShareable: このフラグは、ドライバーが共有不可であることを指定します。 これは、Microsoft XPS ドキュメント ライターなどの仮想ドライバーに適しています。

SoftResetOnJobCancellation: このフラグは、デバイスが印刷ジョブの取り消し時に USB ソフト リセット (IOCTL_USBPRINT_SOFT_RESET) を必要とすることを指定しています。 ArchiveEnabled v4 ドライバーは、このフラグを使用して、アーカイブ最適化 XPS をスプール ファイルとして要求します。
なし。 例 :

Flags=
NotShareable、
SoftResetOnJobCancellation
Flags=
ArchiveEnabled、NotShareable
PrinterDriverID

これは、印刷ドライバーを記述する一意の ID です。 2 つのドライバーが同じ 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 マッピング ファイルを指定します。 これは、JavaScript コードで PrintTicket から DEVMODE への変換で使用される XML ファイルです。
なし。 DevModeMap=
fadmmap.xml
EventFile

ドライバー イベント XML ファイルを指定します。
なし。 EventFile=
faevents.xml
QueueProperties

キュー プロパティ バッグの形式を指定します。 これは XML ファイルであり、コンパイルすることはできません。
なし。 QueueProperties=
faQueueProps.xml
BidiUSBStatusInterface

USB Bidi 通信に使用する 1 つ以上のデバイス インターフェイスに一致するハードウェア ID の一覧を指定します。
なし。ただし、状態が印刷インターフェイスではない USB インターフェイス経由で行われる場合にのみサポートする必要があります。 BidiUSBStatusInterface=
「USB\vid_1234&pid_1234」、
「USB\vid_1234&pid_4567」
UserPropertyBagScope

このディレクティブは、ユーザー プロパティ バッグの範囲を Queue または Manufacturer として指定します。
このディレクティブを省略すると、Queue が既定値になります。 このディレクティブの有効なオプションは次のとおりです。

Queue: これは既定の構成であり、Windows 8 の動作と一致します。 Manufacturer: INF で同じ Manufacturer 文字列を使用するすべてのキューでは、同じユーザー プロパティ バッグが使用されます。
なし。 UserPropertyBagScope=
メーカー
RetrievePrintDeviceCapabilitiesFromDevice

v4 ドライバーは、ドライバーの DataFile として PrintDeviceCapabilities ファイルを設定し、DataFileType が MIME の種類「application/vnd.ms-PrintDeviceCapabilities+xml」であることを示している限り、WS-Print v2.0 プリンターから PrintDeviceCapabilities ファイルを取得する必要があることを指定できます。

有効なオプション:

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 の場合のみ、0 の resourceID を指定でき、印刷スプーラーはこれらに対して内部リソースを使用します。
なし。 <FileExtensionName>=
<ResourceID>
Xps=1234
SaveAsTitle
このディレクティブは、[ファイルの保存] ダイアログで使用するタイトルについて説明します。 値は、ドライバーの ResourceFile からの resourceID です。
なし。 SaveAsTitle=
<ResourceID>
SaveAsTitle=4321

PrinterExtensions セクション

PrinterExtensions セクションでは、プリンター拡張機能と、それがサポートする呼び出しモードを指定します。 どちらのエントリでも、アプリは自動的に印刷システムに登録されます。 さらに、このアプリは、PrinterDriverID と ReasonID という 2 つの異なるパラメーターで構成されます。 その結果、各エントリは異なる 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 ファイル エントリ