0

USB デバイスとドライバー (.inf、libusb.dll、libusb.sys) があり、Windows のデバイス インストール ウィザードを使用して (.inf ファイルを指定して) インストールできます。ただし、ウィザードを使用せずにドライバーをインストールする必要があります (受動的であるため、ユーザーは何もする必要がありません)。これを達成する方法を知っている人はいますか?

4

2 に答える 2

2

「インストーラー」タグを追加したので、Windows インストーラー、InstallShield InstallScript など、ある種のインストール パッケージについて話していると思います。

その場合は、おそらく Microsoft のDIFx フレームワークを使用する必要があります。

DIFx を使用すると、高品質のドライバー パッケージの作成、ドライバー パッケージのインストールのカスタマイズ、アプリケーション ソフトウェアと組み合わせたドライバー パッケージのインストールの許可、および標準の Windows API とインストール ツールの使用が容易になります。また、DIFx を使用すると、エンド ユーザーはデバイスとドライバーの問題を簡単に診断できます。エンド ユーザーは、必要に応じてドライバーをアンインストールまたはロールバックできることを確信できます。

Windows インストーラー ベースのインストールと InstallScript インストールの両方で DIFx を使用しました。非常にユーザーフレンドリーで、デバッグしやすく、効果的です。

于 2010-05-05T21:47:36.480 に答える
1

私の同僚は、非常にうまく機能する答えを思いつきました。ハードウェアとドライバーの組み合わせが WHQL 署名されていない限り、新しいハードウェアの追加ウィザードは常に Win XP に表示されるようです。ただし、次の方法を使用すると、ウィザードの [検索] ボタンでドライバーを自動的に検索することができます。Windows 7 ではプロンプトは表示されず、デバイスは問題なくインストールされます。ただし、64 ビット マシンでは署名がより厳密に適用されるため、注意が必要です。

したがって、ドキュメント全体からの関連する抜粋は次のとおりです。

DIFxAPI マージ モジュールを使用します。( Windows のドライバー、INF ファイルの使用、および DIFxAPP の優れた紹介をお読みください。) DIFxAPI マージ モジュールは、WDK の 'WDDK//redist\DIFx\DIFxApp\MergeModule\' ディレクトリに含まれています。マージ モジュールは MSI パッケージに含めることができ、複数のデバイス ドライバーをインストールするように設定できます。DIFxAPP マージ モジュールを使用して MSI を作成する手順は次のとおりです。

  1. セットアップ フォルダーで、ドライバー パッケージ用のアプリケーション フォルダーに別のディレクトリを作成し、ドライバー ファイルをそのフォルダーに追加します。
  2. DIFxApp.msm をセットアップ プロジェクトに追加します。
  3. セットアップを構築する
  4. Orca を使用して MSI データベース テーブルを編集し、INF コンポーネントを DIFxAPP マージ モジュール テーブルに追加します。

    1. Orca のインストールは、'C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin' ディレクトリの Windows SDK に含まれています。(Windows SDK はMicrosoft からダウンロードできます)
    2. Orca を実行し、変更が必要な MSI パッケージを選択します。
      • 自動化についてはパート 5 をお読みください。
    3. [ファイル] テーブルで、インストールするドライバー パッケージの INF ファイルを見つけ、コンポーネントの値をコピーします。
    4. MsiDriverPackages テーブルに新しい行を作成します。Component 値を Component フィールドに追加します。次のフラグを使用できます (ただし、一部は Windows 7 では無視されます)。

      • 0 - 未設定 (デフォルト)
      • 1 – 現在インストールされているドライバーがインストールされているドライバーよりも一致している場合でも、ドライバーを強制的にインストールします。
      • 2 – ドライバーのインストール後にデバイスを接続するようユーザーに通知するメッセージ ボックスを抑制します。
      • 4 – [プログラムの追加と削除] でドライバーのエントリを追加しないようにします。
        メインアプリケーションをアンインストールすると、ドライバもアンインストールされます。
      • 8 – 署名されていないドライバー パッケージをインストールする
      • 16 – アンインストール中にドライバー バイナリを削除します。
    5. MSI を保存します。プロセスを自動化するために、MSI データベースの編集を Transform に記録し、ビルド後のプロセスで Transform を適用できます。
      1. Orca で MSI を開きます。
      2. Transform->New Transform を選択します。
      3. 上記の手順 3 と 4 を完了します。
      4. Transform->Generate transform を選択し、変換を保存します。
      5. セットアップ プロジェクトのポスト ビルドに次の行を追加します。 Microsoft SDKs\Windows\v7.0\Bin

MSI からインストール中にエラーが発生した場合 (たとえば、無効なFlag値が原因でエラー コード 2356 が表示された場合)、Orca のValidate関数を使用してエラーがないかどうかを確認します。編集: これらのエラーを修正しても、エラーは解消されません。inf ファイルは独自のサブディレクトリにある必要があることを読んだことを覚えていますが、それでも問題は解決しませんでした。

于 2010-05-28T19:50:46.203 に答える