プリンター INF ファイル エントリ

重要

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

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

インストール アプリケーションでプリンターをプリント サーバーにインストールするには、スプーラーの AddPrinterDriverEx 関数を呼び出してドライバー ファイルを読み込んだ後、スプーラーの AddPrinter 関数を呼び出してプリンターをサーバーで使用できるようにする必要があります。

AddPrinterDriverEx 関数には入力としてDRIVER_INFO_3 構造体が必要です。AddPrinter 関数には入力として PRINTER_INFO_2 構造体が必要です。 既定のプリンター クラス インストーラー Ntprint.dll は、プリンター INF ファイルを読み取り、関数が呼び出される前にこれらの構造体に配置されている必要がある文字列値を取得します。

Ntprint.dll で認識されるプリンター ドライバーの INF ファイル エントリのセットが定義されています。 これらのエントリの形式は次のとおりです。

EntryName = Value

ここで、EntryName は、エントリを識別する文字列です。Value は、エントリに割り当てられる文字列値です。

次の表に、プリンター INF ファイルに含める必要がある INF ファイル エントリを示します。 この表では、それぞれのエントリに対して以下の項目が含まれています。

  • エントリに割り当てる必要がある値。

  • エントリが定義されていない場合に Ntprint.dll が使用する既定値。

  • Ntprint.dll によってエントリ値へのポインターが配置される構造体メンバー。

INF ファイル エントリ Value 既定値 (エントリが指定されていない場合) 構造体のメンバー
ConfigFile ドライバーのプリンター インターフェイス DLL の名前。 DriverFile に指定された値。 DRIVER_INFO_3 構造体の pConfigFile メンバー
DataFile ドライバーに関連付けられているデータ ファイルの名前 (PPD ファイルなど)。 INF ファイル内のドライバーのセクション名。 DRIVER_INFO_3 構造体の pDataFile メンバー
DefaultDataType NT ベースのオペレーティング システムでは使用されません。
DriverCategory この表の下の注 1 を参照してください。 INF ファイルでドライバー カテゴリ (ほとんどの v3 ドライバーなど) が指定されていない場合、ドライバーのカテゴリは PrintFax.Printer であると想定されます。 なし
DriverFile ドライバーのプリンター グラフィックス DLL の名前。 INF ファイル内のドライバーのセクション名。 DRIVER_INFO_3 構造体の pDriverPath メンバー
ExcludeFromSelect この表の下の注 2 を参照してください。 なし なし
HelpFile インターフェイス DLL のヘルプ ファイルの名前。 なし。 ヘルプ ファイルは指定されていません。 DRIVER_INFO_3 構造体の pHelpFile メンバー
LanguageMonitor プリンター ドライバーに関連付ける言語モニターの名前。 「LanguageMonitor 値の形式」セクションを参照してください。 なし。 言語モニターは指定されていません。 DRIVER_INFO_3 構造体の pMonitorName メンバー
PrintProcessor プリンター キューに関連付ける印刷プロセッサの名前。 「PrintProcessor 値の形式」セクションを参照してください。 既定の印刷プロセッサ (WinPrint) が使用されます。 DRIVER_INFO_2 構造体の pPrintProcessor メンバー
VendorSetup カスタマイズされたプリンターのセットアップ操作を処理する、ベンダーが提供する DLL 内の関数の名前。 なし。 この表の下の注 3 を参照してください。 なし
InboxVersionRequired INF が参照するすべてのコア ドライバーの最小許容バージョン。 InboxVersionRequired の詳細については、「INF InboxVersionRequired ディレクティブ」を参照してください。 なし なし

1 (DriverCategory): INF ファイルでカテゴリが指定されている場合は、これらはカテゴリを指定するために使用できる値 (それぞれ 0 から 5) です。

ドライバー カテゴリ Value 説明
PrintFax.Printer 0 (ローカルまたはネットワーク プロトコルを介して) コンピューターに接続されているプリンターまたは別のコンピューター上の物理プリンターへのプロキシを表す印刷キュー。 ユーザーが物理プリンターに印刷した場合、結果として、用紙にドキュメントが印刷されます。
PrintFax.Fax 1 物理または仮想 FAX マシンを表す印刷キュー。 ユーザーが FAX プリンターに印刷した場合、結果として、(場合によってはユーザーの操作後に) FAX が送信されます。
PrintFax.Printer.File 2 ソフト コピー ドキュメントを生成する印刷キュー。 ユーザーがファイル プリンターに印刷する場合、ユーザーが最初にファイル名を入力する必要があります。次に、スプーラーが、そのファイルに印刷出力を送信します。 ファイル プリンターは常にファイル名を必要としますが、他のユーザー入力は受け取りません。 ユーザーがファイル名を指定するオプションがない場合、アプリは、スプーラーで使用できるファイル名を生成します。 ファイル プリンターの一般的な例として、Microsoft XPS Document Writer (MXDW) と PDF ライターがあります。
PrintFax.Printer.Virtual 3 印刷スプーラーに不透明な印刷データに対して何かの操作を実行するドライバーがある印刷キュー。 ユーザーが仮想プリンターに印刷した場合、想定される結果として、印刷されたドキュメントがコンピューター上のどこかに保存されるか、別のアプリケーションに送信されるか、または電子メールで送信されます。 仮想プリンターへの印刷の一般的な例は、印刷されたドキュメントが Microsoft Office OneNote プリンターに送信されるシナリオです。 ユーザーが仮想プリンターへの印刷を選択した場合、ドライバーまたはその他のドライバー コンポーネントによって開始される追加のユーザー操作が必要になる場合があります。 詳細については、「プリンター INF ファイル内の仮想プリンター」を参照してください。
PrintFax.Printer.Service 4 印刷サービスを表す印刷キュー。 ユーザーがサービスへの印刷を選択した場合、結果として、(場合によってはユーザーの操作の後に) サード パーティの印刷サービスが印刷されたコンテンツを受け取ります。 その後、ユーザーは職場の物理的な場所に移動して、印刷された出力を受け取ることができます。
PrintFax.Printer.3D 5 3D プリンターのデータ ストリームを表す印刷キュー。 このカテゴリが 2D プリンター (通常のプリンター) に対して誤って指定された場合、2D プリンターは、単にデータ ストリームの 2D コンテンツを出力します。 このカテゴリが 3D プリンターに対して正しく指定されていても、2D データ ストリームが 3D プリンターに送信された場合、3D プリンターは出力を生成しません。

また、v4 印刷ドライバーではマニフェスト ファイルが使用されることにも注意してください。 詳細については、「V4 ドライバー マニフェスト」を参照してください。

Note

2 (ExcludeFromSelect): [デバイスの選択] ダイアログまたはプリンターの追加ウィザードに表示されないデバイスのデバイス ID。 プリンターの場合、これには、INF ファイルに重複するデバイス記述があるデバイス (たとえば、赤外線およびパラレル列挙または別のバスに対して複数のエントリを持つデバイス) のすべての PnP エントリが含まれます。 ExcludeFromSelect エントリは、このテーブル内の他のすべてのエントリとは異なり、INF ファイルの Control Flags セクションに指定されている必要があります。 詳細については、「INF ControlFlags セクション」を参照してください。

Note

3 (VendorSetup): VendorSetup エントリが指定されていない場合、カスタマイズされたセットアップ操作は実行されません。 特に、VendorSetup INF エントリを使用する場合を除き、印刷プロセッサ、印刷モニター、またはプリンター ドライバーのインストール中にユーザー インターフェイスは許可されません。 このエントリの詳細については、「カスタマイズされたプリンターのセットアップ操作」を参照してください。

重要

VendorSetup は非推奨となったため、これから開発する新しい v3 または v4 ドライバーでは使用しないでください。 VendorSetup に関するこの情報は、参照用のみ、または既にこの INF ディレクティブを使用している既存の v3 ドライバーのメンテナンス用に提供されます。

プリンター INF ファイルのエントリは、通常、プリンター INF ファイルのデータ セクション内に指定されます。 例については、「サンプルのプリンター INF ファイル」を参照してください。

LanguageMonitor 値の形式

LanguageMonitor エントリがプリンター INF ファイルに含まれている場合、値の形式は次のようになります。

LanguageMonitor=" MonitorName , MonitorDLLName "

MonitorName は、モニターの表示名を表すテキスト文字列です。MonitorDLLName は、モニター DLL のファイル名です。

PrintProcessor 値の形式

PrintProcessor エントリがプリンター INF ファイルに含まれている場合、値の形式は次のようになります。

PrintProcessor=" PrintProcessorName , PrintProcessorDLLName "

ここで、PrintProcessorName は、印刷プロセッサの表示名を表すテキスト文字列です。PrintProcessorDLLName は、DLL のファイル名です。

依存ファイル

Windows 2000 以降の場合、依存ファイルは、プリンター INF ファイルのインストール セクションに含まれ、dirid 66000 が指定された一方で DriverFile、DataFile、ConfigFile、または HelpFile エントリに割り当てられていないプリンター ドライバー ファイルです。

次の例は、3 つの依存ファイルをプリンター ドライバー ディレクトリ (つまり、dirid 66000 で指定されたディレクトリ) にコピーしてインストールする INF ファイルからの抜粋を示しています。

[Contoso]
%PRINTER_MODEL_123%=Contoso_Install_Section,LPTENUM\Contoso_1284.4_P29C5
...
[Contoso_Install_Section]
CopyFiles=@Contoso.ini,@Contoso.xml,@Contoso.dll
...
[DestinationDirs]
DefaultDestDir=66000
...
[Strings]
PRINTER_MODEL_123 = "Contoso Printer Model 123"

この例では、Contoso.ini はプリンター INI ファイル、Contoso.xml は bidi 拡張ファイル、Contoso.dll はカスタマイズされたコンポーネントです。 プリンター INI ファイル、bidi 拡張ファイル、およびカスタマイズされたコンポーネントの詳細については、「カスタマイズされたドライバー コンポーネントをインストールする」および「双方向通信スキーマ」を参照してください。

ポイントアンドプリント操作では、ドライバーとドライバーに依存するファイルの両方がクライアントにインストールされます。

プリンター モデルごとに最大 64 個の依存ファイルを指定できます。

双方向通信スキーマ

INF ControlFlags セクション

カスタマイズされたドライバー コンポーネントをインストールする

ポイントアンドプリント

プリンター INF ファイルのインストール セクション

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