1

私はソフトウェア開発者であり、プリンター メーカーです。最近、ドライバーに尋ねました。それで、チュートリアル、サンプル、記事を探し始めました。

まず、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が発生し続けます。

問題を解決するために私は何をしますか?

  1. フォーラムでは、Windows 資格情報でこのエラーが発生するのは特権の問題だと人々は言います。新しい管理者アカウントをセットアップし、ドライバーをインストールします。しかし、セットアップを試みると、プリンターエラーは同じです。

  2. Windows フォルダーの下の Windows ログを調査します: setupapi.dev.log および setupact.log。このセクションでは、0x0000002 エラーが見つかりましたが、0x000003 エラーは見つかりませんでした。これは私には役に立ちません。

  3. フォーラムの一部の人々は、事前にインストールされたドライバーとプリンターが問題を引き起こしている可能性があると述べています。system32 driverstore でドライバーとプリンターをアンインストールします。また、コントロール パネルのプリンター サービスとプリンター セクションをアンインストールします。結果は同じです。

  4. channel9 を見つけました。これはマイクロソフトの開発ネットワークのようなものです。開発に関するビデオ チュートリアルとスライドをいくつか見つけました。HW-328T、HW-238T、HW-979P、HW-981P、HW-903T、HW-322Tを見ました。このビデオは私にいくつかの洞察を与えてくれましたが、それ以上のものではありませんでした。

  5. だから私はWindowsでeventwieverツールを使って問題を掘り続けています。HRESULT 0x80070003 エラーが見つかりました。それはプリンタースプーラーのエラーログです。スプーラを再起動してもエラーが続き、サービスを再起動してコンピュータを再起動してもエラーが続きます。

  6. ドライバーのレジストリ エディターの古いエントリを試します。結果は同じです。Windowsフォルダーの管理者権限を取得できましたが、違いはありませんでした。

  7. 管理者権限でコマンドラインを使用して新しいプリンターをインストールしようとしましたが、結果は同じです。

  8. 64 ビットおよび 32 ビットの Windows にインストールするための多数の試行。

  9. また、GPD、PPD タイプを使用してみます。

私のコード サンプル.

  1. 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"
    
  2. inf ファイルをインストールするための私の C# 関数コード

    if (SetupCopyOEMInf(inf_path, "", 2, 0x0000400, null, 0, 0, null))
    

前もって感謝します。

注:必要に応じて、gpd ファイルも投稿できます。

4

2 に答える 2

1

次のようなコピー セクションが INF ファイルにないように見えます。

[Ali.GPD]
CopyFiles=@Ali.gpd

Inf ファイルでは、コピーするファイルを知るためにこれが必要です。このトピックに関連するMSDN ドキュメントは次のとおりです。

お役に立てれば。

于 2015-05-08T09:01:04.427 に答える