次の方法で共有


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 を使用してこのアクションを実行することはできません。