2

.inf ファイルを使用してドライバーを手動でインストールします。今までは、oem.inf と .pnf ファイルを inf フォルダから削除してアンインストールしていました。新しいドライバーをインストールするたびに、古い inf および pnf ファイルを削除/アンインストールします。

以前のアンインストール (.inf および .pnf ファイルの削除による) では、レジストリ設定を変更または削除しませんでした。

この場合、レジストリの設定を変更または削除しますか (例: devnode)?

4

2 に答える 2

5

SetupUninstallOEMInf関数を使用して、.INF (およびその後の .PNF) ファイルをアンインストールする必要があります。これにより、詳細が処理されます。pnputil(Vista 以降では) コマンドラインから同等のことを行う必要があります。ただし、この機能は、現在インストールされているドライバー (devnode に関連付けられているドライバーなど) を削除しません。

  1. 最初に古いドライバーをアンインストールするのはなぜですか? ユーザーは、少なくとも 1 つの devnode のドライバーを既にインストールしている可能性があります。などのマイクロソフト認定のソリューションを使用しないのはなぜDpInstですか? ドライバーの更新に必要な作業を行います。

  2. devnodes (レジストリ内) に .INF 参照が残ることになるため、に渡すSUOI_FORCEDELETEことSetupUninstallOEMInfはお勧めできません。

  3. 職場で、devnode を削除してから INF を削除する DriverUninstaller という名前のユーティリティを作成しました。このユーティリティは、アンインストールにのみ使用します。アップグレードは、DpInst によって処理されます。流れは大まかに次のとおりです。

    1. SetupAPI を使用してそれらを列挙します (たとえば、デバイス クラスが一意の場合はデバイス クラスごとに)。
    2. Devnode ごとに呼び出します。SetupDiCallClassInstaller(DIF_REMOVE, ...)
    3. SetupDiBuildDriverInfoListデバイスのすべての .INF ファイルを検索するために呼び出します
    4. INF ごとに呼び出します。SetupUninstallOEMInf

このユーティリティに関心があれば、雇用主にオープンソース化するよう説得できるかもしれません:-)

于 2012-08-07T20:10:17.490 に答える