次の方法で共有


SetupAPI を使用してデバイスとドライバー パッケージをアンインストールする

SetupAPI は、 デバイスのインストール機能など、さまざまな機能セットを提供するシステム コンポーネントです。

デバイス インストール アプリケーション共同インストーラーおよびクラス インストーラー は、これらの関数を使用して、デバイスのインストールに対するカスタム操作を実行できます。 SetupAPI では、インストールするデバイスと ドライバー パッケージ のアンインストールもサポートされています。

このトピックでは、SetupAPI 関数を使用してデバイスとドライバー パッケージをアンインストールするために従うことができる手順について説明します。

ドライバー パッケージとドライバー パッケージのアンインストールの詳細については、「 デバイスとドライバー パッケージのアンインストール方法」を参照してください。

デバイスのアンインストール

SetupAPI を使用すると、次の方法を使用して、デバイスをアンインストールし、システムからデバイス ノード (devnode) を削除できます。

  • デバイス インストール アプリケーションは、 SetupDiCallClassInstaller 関数を呼び出すことによって、デバイスのアンインストールを要求できます。 アプリケーションがこの関数を呼び出してデバイスをアンインストールする場合は、 InstallFunction パラメーターを DIF_REMOVE コードに設定する必要があります。 すべての DIF コードの一覧については、「 デバイス インストール関数」を参照してください。

    DIF_REMOVE要求の処理中に SetupDiRemoveDevice が呼び出された場合、この関数はデバイスの devnode をシステムから削除します。 また、デバイスのハードウェアとソフトウェアのレジストリ キーと、ハードウェア プロファイル固有のレジストリ キー (構成固有のレジストリ キー) も削除されます。

    : SetupDiRemoveDevice は、デバイス インストール アプリケーションではなく、クラス インストーラーによってのみ呼び出す必要があります。

    DIF コードの詳細については、「DIF コードの処理」を参照してください。

  • Windows 7 以降、デバイス インストール アプリケーションは 、DiUninstallDevice 関数を呼び出すことによってデバイスをアンインストールできます。 この関数は、InstallFunction パラメーターを DIF_REMOVE に設定して SetupDiCallClassInstaller を呼び出すのと似ています。 ただし、この関数は、指定されたデバイスの devnode を削除するだけでなく、呼び出し時にシステムに存在するデバイスのすべての子 devnode の削除を試みます。

ドライバー ストアからのドライバー パッケージの削除

Windows XP 以降、デバイス インストール アプリケーションは SetupUninstallOEMInf 関数を呼び出して、指定された INF ファイル をシステム INF ファイル ディレクトリから削除できます。

Windows Vista 以降では、この関数は、ドライバー ストアから指定した INF ファイルを含むドライバー パッケージも削除 します

または、デバイス インストール アプリケーションで DiUninstallDriver を呼び出して、ドライバー ストアからドライバー パッケージを削除することもできます。

ドライバー ストアからドライバー パッケージを削除する方法の詳細については、「ドライバー ストア からドライバー パッケージを削除する」を参照してください

インストールされているドライバーのバイナリ ファイルの削除

SetupAPI を使用してこのアクションを実行することはできません。