次の方法で共有


XPSDrv レンダー モジュール

重要

プリンターデバイス開発におけるWindows 10および11での印刷体験をカスタマイズするために、MicrosoftのIPPインボックスクラスドライバーとPrint Support Apps (PSA)の使用を推奨します。

詳細については、プリントサポートアプリデザインガイド.

XPSDrv プリンター ドライバーのレンダー モジュールには、プリンターに出力する XPS スプール ファイルの内容をレンダリングするフィルターが含まれています。 ドライバーの一連のレンダリング フィルターがインスタンス化され、フィルター パイプラインで実行されます。 フィルター パイプライン マネージャー (FPM) はフィルターを管理し、フィルター間通信機能 (IFC) はフィルター間の相互作用を制御します。

次の図はフィルター パイプラインを示しています。

diagram illustrating a filter pipeline.

Microsoft では、次の XPS ドライバー コンポーネントを提供しています。

  • フィルター パイプライン マネージャー

  • フィルター間コミュニケーター

  • プロパティ バッグ

フィルター パイプライン マネージャーは次の条件を満たす必要があります。

  1. フィルターを読み込んで初期化します。

  2. フィルター間のデータを管理します。

  3. 印刷ジョブが完了したら、フィルターをアンロードします。

フィルター間コミュニケーターはフィルター間のデータ転送を管理し、フィルター パイプライン マネージャーはフィルター間コミュニケーターを管理します。

次のプロセスでは、パイプライン内の一連のフィルターに何が起こるかについて説明します。

  1. フィルター パイプライン マネージャーは、フィルター パイプライン構成 (FPC) ファイルを読み取ります。

  2. FPC が指定するフィルターが読み込まれます。

  3. フィルター パイプラインが初期化され、フィルター パイプライン マネージャーによってフィルター パイプラインが開始されます。

  4. パイプラインの最初のフィルターは、フィルター パイプライン マネージャーが提供する XPS またはストリーム インターフェイスを介して XPS データを読み取り、その後、フィルターによって内容が処理されます。

  5. 最初のフィルターは、インター フィルター コミュニケーターが提供するインターフェイスを使用して、処理された XPS データを 2 番目のフィルターに送信します。

  6. フィルター間コミュニケーターは、2 番目のフィルターの準備ができるまで、中間処理の結果を保持します。

  7. 手順 1 から 6 は、最後のフィルターの結果が、ドライバーが出力用に定義したポートに送信されるまで、フィルターからフィルターに繰り返されます。

プリンターがページ記述言語 (PDL) として XPS を使用していて、他の処理が必要ない場合は、空の ("パススルー") パイプラインを使用できます。 XPS がプリンターの PDL でない場合は、XPS をプリンターの PDL に変換するフィルターと、必要なその他の処理を作成する必要があります。

XPS ドライバーを開発するには、次のコンポーネントを作成する必要があります。

XPSDrv レンダー モジュールへの印刷チケット サポートを追加することもできます。