2

InstallShieldを使用して、アプリケーション、ドライバー、およびサービスをインストールしています。プラグアンドプレイドライバーは、デバイスマネージャーでハードウェアIDが見つかった場合にのみインストールする必要があります。ドライバーのインストールは、DPInst.exeを使用して行われます。私の問題は、ユーザーが手動でドライバーをアンインストールできる場合があり(インストール後、または[その他のデバイス]の下の[不明なドライバー]をアンインストールした後)、デバイスがデバイスツリーにハードウェアIDが見つからないことです。プラグが差し込まれています。( 「新しいハードウェアのスキャン」に相当するコード)を使用してインストール中にデバイスツリーを再スキャンすると、ハードウェアIDを見つけることができますが、「新しいハードウェアの検出ウィザード」が表示されます。CM_Reenumerate_DevNode_Ex

デバイスツリーを再スキャンして「新しいハードウェアの検出ウィザード」を抑制したり、再スキャンを回避したりして、デバイスのハードウェアIDがシステムに存在することを確認したりする方法はありますか?

4

2 に答える 2

0

やり方が間違っているようですね。MSI ベースのインストールを使用している場合、DPInst の代わりに DIFxApp を使用してみませんか? 「新しいハードウェアの検出」ウィザードに関しては、ここで 2 つのものが必要になります。

  1. inf ファイルが正しいことを確認してください (ドライバーがハードウェア ID に関連付けられるようにするため)。
  2. MS から WHQL 署名を取得します。信頼されていないドライバーはデバイスに自動的に割り当てられないため、XP ではこの手順が必要です。Vista および 7 では、自分でドライバにデジタル署名できますが、インストール中に、この発行元 (あなた) を信頼するかどうかをユーザーに尋ねる警告が表示されます。
于 2010-01-27T08:23:27.323 に答える
0

古い回答に対してすでにコメントが多すぎるため、新しい回答を書いています。その内容は、状況の小さな誤解に基づいていました。

私が今理解している実際の問題は、ドライバーをインストールする前に、デバイスを再スキャンするときにポップアップする「新しいハードウェアの追加」ウィザードです。残念ながら、このウィザードは、システム内の新しいデバイスを処理する適切なドライバーが見つからない場合に常にポップアップするため、これを克服するには、そのようなドライバーがシステムに存在することを確認するしかありません。これにより、次の 2 つの解決策が考えられます。

  1. ソフトウェアの最初のインストールに進み、ドライバーがデバイスに適していることを確認します (inf が適切な形式であり、WHQL 署名がある)。私が理解している限りでは、デバイスが接続されていないマシンにドライバーをインストールしたくないため、これはオプションではありません (理由を知りたいです)。
  2. システム内の他のドライバーがそれを処理するのに適していることを確認してください。その場合、ビルトイン ドライバーの 1 つ (デバイスの関数ドライバーとして機能する場合に大混乱を引き起こさないドライバー) を選択し、一致する互換性のある ID をデバイスに与える必要があります。内蔵ドライバーが適切であることがわかります。この方法では、デバイスの再スキャン後にユーザーを待つ必要はありませんが、デバイスによっては、適切な組み込みドライバーを見つけることができない場合があります。
于 2010-01-28T10:01:39.597 に答える