私はソフトウェア開発者であり、プリンター メーカーです。最近、ドライバーに尋ねました。それで、チュートリアル、サンプル、記事を探し始めました。
まず、Windows Driver Kit 7600.16385.1 をダウンロードしました。私はそれをインストールし、いくつかのサンプル ドライバーでビルドします (たとえば、ジェネリック/テキストのみ)。inf ファイルのメーカー セクションを変更したところ、問題なく動作しました。しかし、私は、印刷してプリンターに送信できるアプリケーションからデータを取得して、より具体的なドライバーを実行するように依頼しました。
この時点で、Visual Studio 2013 と winddk 8.1 をインストールして、さらに掘り下げます。v4 プリンター ドライバーのサンプルをすぐに試してみます。私はそれを構築することができました(奇妙な動作をする猫へのInfなので、プロジェクトのプロパティを無効にしました)。次に、新しいドライバーでプリンターをインストールしてみます。ドライバソフトウェアはまったくインストールされていません。私は inf 構文を取得し、いくつかのエラーを見つけて問題を修正しました。その後、0x00000002 エラーが発生し続けます。私はなんとか問題を解決しましたが、0x0000003エラーが発生しました。
それで、ドライバーをインストールすることができた inf インストーラー c# プロジェクトを書き留めます。ドライバーがプリンター ドライバー セクションに表示されていましたが、新しいプリンターをインストールしようとすると、インストールがエラー 0x0000003 で失敗し続けます。エラーについて検索したところ、path_not_found エラーであることがわかりました。いくつかの構文チェックを行って、inf ファイルをチェックします。そこにいくらかの努力をしましたが、エラー0x0000003が発生し続けます。
問題を解決するために私は何をしますか?
フォーラムでは、Windows 資格情報でこのエラーが発生するのは特権の問題だと人々は言います。新しい管理者アカウントをセットアップし、ドライバーをインストールします。しかし、セットアップを試みると、プリンターエラーは同じです。
Windows フォルダーの下の Windows ログを調査します: setupapi.dev.log および setupact.log。このセクションでは、0x0000002 エラーが見つかりましたが、0x000003 エラーは見つかりませんでした。これは私には役に立ちません。
フォーラムの一部の人々は、事前にインストールされたドライバーとプリンターが問題を引き起こしている可能性があると述べています。system32 driverstore でドライバーとプリンターをアンインストールします。また、コントロール パネルのプリンター サービスとプリンター セクションをアンインストールします。結果は同じです。
channel9 を見つけました。これはマイクロソフトの開発ネットワークのようなものです。開発に関するビデオ チュートリアルとスライドをいくつか見つけました。HW-328T、HW-238T、HW-979P、HW-981P、HW-903T、HW-322Tを見ました。このビデオは私にいくつかの洞察を与えてくれましたが、それ以上のものではありませんでした。
だから私はWindowsでeventwieverツールを使って問題を掘り続けています。HRESULT 0x80070003 エラーが見つかりました。それはプリンタースプーラーのエラーログです。スプーラを再起動してもエラーが続き、サービスを再起動してコンピュータを再起動してもエラーが続きます。
ドライバーのレジストリ エディターの古いエントリを試します。結果は同じです。Windowsフォルダーの管理者権限を取得できましたが、違いはありませんでした。
管理者権限でコマンドラインを使用して新しいプリンターをインストールしようとしましたが、結果は同じです。
64 ビットおよび 32 ビットの Windows にインストールするための多数の試行。
また、GPD、PPD タイプを使用してみます。
私のコード サンプル.
INF ファイル
[Version] Signature="$Windows NT$" Class=Printer ClassGuid={4D36E979-E325-11CE-BFC1-08002BE10318} Provider=%ManufacturerName% CatalogFile=Ali.cat ClassVer=4.0 DriverVer=08/01/2012,1.0.0.0 [DestinationDirs] DefaultDestDir = 66000 [Manufacturer] %ManufacturerName%=Ali,NTia64,NTamd64 [Ali] "Ali V1" = Ali.GPD [Ali.NTia64] "Ali V1" = Ali.GPD [Ali.NTamd64] "Ali V1" = Ali.GPD [SourceDisksNames.amd64] 1= %DiskName%,,, [SourceDisksFiles.amd64] Ali.gpd = 1 [SourceDisksNames.ia64] 1= %DiskName%,,, [SourceDisksFiles.ia64] Ali.gpd = 1 [Strings] ManufacturerName="Ali" DiskName="Ali Installation Disk"
inf ファイルをインストールするための私の C# 関数コード
if (SetupCopyOEMInf(inf_path, "", 2, 0x0000400, null, 0, 0, null))
前もって感謝します。
注:必要に応じて、gpd ファイルも投稿できます。