2017-04-11 15 views
0

V4 printer driverを開発するためにthis Microsoft tutorialに続いています。INFファイルを使用してインストールした後にV4プリンタドライバが表示されない

Hereは完全な解決策です。

私は単にINFファイルを右クリックしてインストールをクリックしました。

私は、次の確認を得る: enter image description here

をしかし、ドライバは印刷管理の下に表示されません。

何が問題なのですか?間違った方法でインストールしているのですか、コードに問題がありますか?

ドライバソースコードのすべての機能にファイルへのロギングを追加しようとしました。そして誰も書かれていないようだ。ドライバはそれ自体をインストールしていません。

FYI:PCを署名モードのテストに入れました。また、ドライバ署名執行も無効になっています。

答えて

0

多くの掘削の後、解決策が見つかりました。私はこれを共有して、同様の問題に直面している人々が多くの労力を節約できるようにします。

最初のもの。デバイスドライバのインストールには、2つのことが起こっています。

  1. ドライバファイルはここにあるドライバストア(にコピー/アップロードされます:実際のインストールが行われたときに対応するデバイスは、現在、接続されると%windir%\System32\DriverStore\FileRepository\
  2. があるデバイスを意味し、対応するデバイス。 /モデルあなたはINFファイルで指定します。

を。これは、伝統的なパスです。あなたはINFファイルを使用してインストールしようとすると、

ので、ドライバファイルがドライバストアのファイルリポジトリにアップロードします。私は、ティINFインストール中にサポートされているモデルのいずれかが接続されている場合、ドライバは完全にインストールされます(テストしていません)。

インストール。 私の要求では、ドライバのインストールとリストアップが事前に要求されています。このためには、関数InstallPrinterDriverFromPackage functionを使用して明示的にインストールすることができます。ここにそれを使用した例があります:

HRESULT Install(LPCTSTR pszInfPath) 
{ 
    HRESULT ret = InstallPrinterDriverFromPackage(
     NULL, 
     pszInfPath, //path of the INF file in the Driver Store 
     L"MyV4PrintDriver", //the name of the driver as in the INF file 
     //L"Windows NT x86", 32 bit environment 
     L"Windows x64", 
     0); 

    if (ret != S_OK) 
    { 
     _com_error err(ret); 
     LPCTSTR errMsg = err.ErrorMessage(); 
     wcout << errMsg << endl; 
    } 
    return ret; 
} 

その他。 UploadPrinterDriverPackage関数を使用して、プリンタドライバファイルをドライバストアにアップロードできます。

関連する問題