基本的な v4 プリンター ドライバーをビルドする
重要
Windows でプリンターとの通信手段として推奨されるのは、最新の印刷プラットフォームです。 プリンターデバイス開発におけるWindows 10および11での印刷体験をカスタマイズするために、MicrosoftのIPPインボックスクラスドライバーとPrint Support Apps (PSA)の使用を推奨します。
詳細については、最新の印刷プラットフォームに関する記事および「印刷サポート アプリの設計ガイド」を参照してください 。
重要
Microsoft は、レガシ v3 および v4 プリンター ドライバーのサポート終了を発表しました。
詳細については、「Windows 上のサード パーティ製プリンター ドライバーのサービスプランの終了」を参照してください。
警告
このプリンター ドライバーのチュートリアルには複数のエラーが含まれており、現時点では使用できません。
Microsoft Visual Studio 2019 のドライバー開発ウィザードを使用して基本的な v4 プリンター ドライバーをビルドし、機能プリンター ドライバーを作成する機能の最小セットを選択します。
このトピックの手順では、ドライバーの構築に必要な手順に焦点を当て、ウィザードで使用できる多くのプリンター ドライバー オプションについては説明しません。
このトピックの目的は、Visual Studio 2019 でプリンター ドライバーを開発するときに関連するプロセスについて説明することです。
プリンター ドライバー オプションの詳細については、「ウィザードでドライバー オプションを確認する」を参照してください。
前提条件
「Windows Driver Kit (WDK) のダウンロード」のガイダンスに従って、次の項目が完了していることを確認します。
C++ によるデスクトップ開発ワークロードと Windows 10 SDK の正しいバージョンと共に、Visual Studio 2019 をインストールします。
Windows 10 用の Windows Driver Kit (WDK) バージョン 2004 をインストールします。
Visual Studio 2019 の Windows Driver Kit (WDK) 拡張機能をインストールします。
基本ドライバーの機能を選択する
Visual Studio の [ファイル] メニューで、[ファイル]>[新規作成]>[プロジェクト]を選択します。
[新しいプロジェクト] ウィンドウで、右上の検索ボックスに「プリンター ドライバー v4」と入力し、Enter キーを押します。 これにより、名前に検索テキストが含まれるすべてのドライバー テンプレートが取得されます。
中央ウィンドウで、"プリンター ドライバー V4" を選択します。
"名前" フィールドにドライバーの名前を入力し、[OK] を選択します。 たとえば、「MyV4PrintDriver」と入力します。
[v4 印刷ドライバー ウィザードの作成] の [ドライバーのレンダリングの種類の選択:] で、[V4 印刷ドライバーとカスタム レンダリング フィルター (XPS のみ)] を選択します。
その他のオプションはすべてデフォルト設定のままにして、[次へ] を選択します。
ウィザードの [セットアップ情報] セクションで、すべてのオプションをデフォルト設定のままにして、[次へ] を選択します。
ウィザードの [セットアップ情報 (2 ページ)] セクションで、すべてのオプションをデフォルト設定のままにして、[次へ] を選択します。
Microsoft Visual Studio では、上記の選択内容を使用して、MyV4PrintDriver の プロジェクト ファイルを生成します。
生成されたドライバー ファイルを確認する
生成されたドライバー ファイルのフォルダーに移動します。 たとえば、プロジェクト に "MyV4PrintDriver" という名前を付けた場合、既定では、ファイルは次の場所に保存されます: [マイ ドキュメント] > [Visual Studio 2019] > [プロジェクト] > [MyV4PrintDriver] > [MyV4PrintDriver]。
フォルダに次のようなファイルが含まれていることを確認します。
ファイル名 ファイルのタイプ MyV4PrintDriver.gpd プリンター記述ファイル MyV4PrintDriver.inf セットアップ情報ファイル MyV4PrintDriver.vcxproj C++ プロジェクト ファイル MyV4PrintDriver.vcxproj.filters C++ プロジェクト フィルター ファイル MyV4PrintDriver-manifest.ini 構成設定ファイル (印刷ドライバー マニフェスト) V4PrintDriver-Intellisense.js Intellisense 用の JavaScript ファイル V4PrintDriver-Intellisense-Windows8.1.js Intellisense 用の JavaScript ファイル
上記の表から、作成されるファイルの 1 つが INF ファイルであることにご注意ください。 Visual Studio では、ドライバーのインストールに使用できるように、完了する必要があるスケルトン INF ファイルが作成されていることにご注意ください。
ドライバーの一意の PrinterDriverID を作成する
Visual Studio [ツール] メニューで、[GUID の作成] を選択します。
オプションの [4. レジストリ形式] を選択し、[コピー] ボタンを選択します。
Visual Studio の [ソリューション エクスプローラー] で、[PrintDriver] ノードを展開します。
[ドライバー ファイル] を選択し、[プロパティ] ウィンドウで "一意識別子" フィールドの値を確認します。 この値を、[貼り付け] を使用して生成した GUID に置き換えます。
INF ファイルを完成させる
MyV4PrintDriver プロジェクトには、ドライバー ファイルのエントリが必要です。 これを開くと、MyV4PrintDriver.inf ファイルが一覧表示されます。 このファイルを開きます。
1. 著作権表示を更新する
INF ファイルの最初の 2 行は、ドライバー パッケージの著作権表示です。
1 行目には、会社の年と名前が含まれています。 YYYY の文字を現在の年に置き換え、<Your manufacturer name> をご自身の会社名に置き換えます。
2 行目では、製造元名とデバイス モデル情報を含むドライバー INF の内容を示しています。 <Your manufacturer name> をご自身の会社名に置き換え、<Printer Model> をドライバーでサポートされているプリンターのモデル名に置き換えます。
たとえば、年が 2021 年で、会社名が Fabrikam で、印刷デバイス モデルが 1234 の場合は、次のように入力します。
; Copyright (c) 2021 Fabrikam
; INF file for the Fabrikam 1234 print driver
2. [バージョン] セクションが正しいことを確認する
[バージョン] を含む行を見つけます。
次の行が表示されていることを確認します。
ClassVer=4.0
次の行が表示されていることを確認します。
Signature="$WINDOWS NT$"
3. [SourceDisksFiles] セクションを構成する
[SourceDisksFiles] を含む行を検索します。
この下に、次の行を入力します。
MyV4PrintDriver.gpd=1
MyV4PrintDriver-manifest.ini=1
MyV4PrintDriverRenderFilter-PipelineConfig.xml=1
MyV4PrintDriverRenderFilter.dll=1
4. [DriverFiles] セクションを構成する
[DriverFiles] を含む行を見つけます。
この下に、次の行を入力します。
MyV4PrintDriver.gpd
MyV4PrintDriver-manifest.ini
MyV4PrintDriverRenderFilter-PipelineConfig.xml
MyV4PrintDriverRenderFilter.dll
5. [Standard.NT$ARCH$] セクションを構成する
[Standard.NT$ARCH$] を含む行を見つけます。
このセクションでは、各モデルの INF の Install
セクションを参照します。 たとえば、プリンターのモデルが Fabrikam 1234 の場合は、次のように入力します。
"Fabrikam 1234"=DriverInstall, USBPRINT\\Fabrikam1234
"Fabrikam 1234"=DriverInstall, WSDPRINT\\Fabrikam1234
6. INF ファイルに PrinterDriverID を追加する
Visual Studio の [ソリューション エクスプローラー] で、[PrintDriver] ノードを展開します。
[ドライバー ファイル] を選択し、[プロパティ] ウィンドウで "一意識別子" フィールドの値を確認します。 これはドライバー ID (GUID) です。 強調表示にし、コピーします。
INF ファイルの [Standard.NT$ARCH$] セクションに、次の行を入力します。
"Fabrikam 1234"=DriverInstall,
コンマの後に、前の手順でコピーした GUID を貼り付けます。 完成した [Standard.NT$ARCH$] セクションは次のようになります。
"Fabrikam 1234"=DriverInstall, {GUID}
"Fabrikam 1234"=DriverInstall, USBPRINT\Fabrikam1234
"Fabrikam 1234"=DriverInstall, WSDPRINT\Fabrikam1234
7. [文字列] セクションを構成する
[文字列] を含む行を見つけます。
この下に ManufacturerName 文字列の定義があります。 <Your manufacturer name> をご自身の会社名に置き換えて、ターゲット プリンターの製造元名を指定し、;TODO: を含む行の残りの部分を削除します。
たとえば、会社名が Fabrikam の場合は、次のように入力します。
ManufacturerName="Fabrikam"
8. INF ファイルを保存する
INF ファイルを完成させると、次のようになります。
; Copyright (c) 2021 Fabrikam
; INF file for the Fabrikam 1234 print driver
[Version]
Signature="$Windows NT$"
Class=Printer
ClassGuid={4D36E979-E325-11CE-BFC1-08002BE10318}
Provider=%ManufacturerName%
CatalogFile=MyV4PrintDriver.cat
ClassVer=4.0
DriverVer=03/17/2014,1.0.0.0
PnpLockdown=1
[Manufacturer]
%ManufacturerName%=Standard,NT$ARCH$
[Standard.NT$ARCH$]
"Fabrikam 1234"=DriverInstall, {GUID}
"Fabrikam 1234"=DriverInstall, USBPRINT\Fabrikam1234
"Fabrikam 1234"=DriverInstall, WSDPRINT\Fabrikam1234
[DriverInstall]
CopyFiles=DriverFiles
[DriverFiles]
MyV4PrintDriver.gpd
MyV4PrintDriver-manifest.ini
MyV4PrintDriverRenderFilter-PipelineConfig.xml
MyV4PrintDriverRenderFilter.dll
[DestinationDirs]
DefaultDestDir = 66000
[SourceDisksNames]
1 = %DiskName%,,,""
[SourceDisksFiles]
MyV4PrintDriver.gpd=1
MyV4PrintDriver-manifest.ini=1
MyV4PrintDriverRenderFilter-PipelineConfig.xml=1
MyV4PrintDriverRenderFilter.dll=1
[Strings]
ManufacturerName="Fabrikam"
DiskName="MyV4PrintDriver Installation Disk"
ドライバー ファイルの一覧を更新する
Visual Studio の [ソリューション エクスプローラー] で、[MyV4PrinterDriver] ノードを展開します。
MyV4PrintDriver.gpd ファイルを選択し、[ドライバー ファイル] ノードにドラッグします。
MyV4PrintDriver-manifest.ini でも同じ操作を行います。
パイプライン構成ファイルをドライバー パッケージに追加する
[ソリューション エクスプローラー] で [MyV4PrintDriver] を長押し (または右クリック) し、[プロパティ] を選びます。
[MyV4PrintDriver プロパティ ページ] ウィンドウで、左側のペインにある [構成プロパティ] を展開します。
[ドライバーのインストール] を展開し、[パッケージ ファイル] を選択します。
右側のペインで、選択し、一覧に表示されているファイルの <[編集]> 行をクリックします。
プレースホルダーをパイプライン構成ファイルの相対パス (たとえば
../MyV4PrintDriver Render Filter/MyV4PrintDriverRenderFilter-PipelineConfig.xml
) に置き換え、[OK] をクリックします。
ドライバー パッケージにレンダー フィルターへの参照を追加する
Visual Studio の [ソリューション エクスプローラー] で、[MyV4PrinterDriver] ノードを展開します。
[参照] ノードを長押し (または右クリック) して、[参照の追加] を選択します。
[MyV4PrintDriver レンダー フィルター] の チェック ボックスを選択し、[OK] を選択します。
デバッグと展開用にドライバー ソリューションを構成する
[ソリューション エクスプローラー] で [MyV4PrintDriver] を長押し (または右クリック) し、[プロパティ] を選びます。
[MyV4PrintDriver プロパティ ページ] ウィンドウで、左側のペインにある [構成プロパティ] を展開します。
[ドライバーのインストール] を展開し、[デプロイ] を選択します。 右側のペインで次の操作を行います。
ターゲット コンピューター名が構成されていることを確認します。 構成されていない場合は、[...] を選択し、[デバイスの構成] ウィザードの指示に従って、リモート ターゲット コンピューターをセットアップします。
[デプロイ前に以前のドライバー バージョンを削除する] にチェックを入れます。
[インストール/再インストールと確認] を選択し、ドロップダウン ボックスから [既定のプリンター ドライバー パッケージのインストール タスク] を選択します。
ドライバーの名前を "省略可能な引数" フィールドに入力します (名前を引用符で囲む必要はありません)。
[OK] を選択します。
ドライバーの署名を構成する
[ソリューション エクスプローラー] で [MyV4PrintDriver] を長押し (または右クリック) し、[プロパティ] を選びます。
[MyV4PrintDriver プロパティ ページ] ウィンドウで、左側のペインにある [構成プロパティ] を展開します。
[ドライバーの署名] を展開し、[全般] を選択します。
右側のペインで、[署名モード] が [テスト署名] に設定されていることを確認します。
[テスト証明書] を選択し、ドロップダウン ボックスから [テスト証明書の作成] を選択します。
[TimeStampServer] を選択し、ドロップダウン ボックスから [Verisign] を選択します。
[OK] を選択します。
ドライバーをビルドして展開する
[ソリューション エクスプローラー]で、[ソリューション MyV4PrintDriver (2 プロジェクト)] を長押し (または右クリック) し、[ソリューションのビルド] を選択します。
ビルド プロセスが完了すると、ドライバーが自動的にインストールされます。 [出力] ウィンドウにエラーがないことを確認します。
ドライバーをテストする
プラグ アンド プレイまたは [プリンター ウィザードの追加] を使用して、印刷キューを作成します。
v4 プリンター ドライバーの INF ファイルの詳細については、「V4 ドライバー INF」を参照してください。
上記の表のファイルに加えて、"MyV4PrintDriver レンダー フィルター" フォルダーが作成されていることにご注意ください。 これはレンダー フィルター プロジェクト テンプレートであり、XPS レンダリング フィルターと XPS フィルター パイプライン構成ファイルを構築するための適切な基盤を提供します。 XPS レンダリング フィルターの詳細については、「XPSDrv レンダー モジュール」を参照してください。