SetupDiRemoveDevice 関数 (setupapi.h)

SetupDiRemoveDevice 関数は、DIF_REMOVEインストール要求の既定のハンドラーです。

構文

WINSETUPAPI BOOL SetupDiRemoveDevice(
  [in]      HDEVINFO         DeviceInfoSet,
  [in, out] PSP_DEVINFO_DATA DeviceInfoData
);

パラメーター

[in] DeviceInfoSet

削除するデバイスを表す デバイス情報 要素を含むローカル システムのデバイス情報セットへのハンドル。

[in, out] DeviceInfoData

DeviceInfoSet のデバイス情報要素を指定するSP_DEVINFO_DATA構造体へのポインター。 DeviceInfoSet のため、これは IN-OUT パラメーターです。DevInst は、戻り時に新しいハンドル値で更新される場合があります。 これがグローバルな削除または最後のハードウェア プロファイル固有の削除である場合、デバイス インスタンスのすべてのトレースがレジストリから削除され、ハンドルは NULL になります。

戻り値

成功した場合、この関数は TRUE を 返します。 それ以外の場合は FALSE を 返し、ログに記録されたエラーは GetLastError の呼び出しによって取得できます。

注釈

SetupDiRemoveDevice は 、システムからデバイスを削除します。 デバイスのハードウェアとソフトウェアのレジストリ キーと、ハードウェア プロファイル固有のレジストリ キー (構成固有のレジストリ キー) が削除されます。 この関数は、 DevInst がアクティブであり、これがグローバルな削除または最後の構成固有の削除である場合に、デバイスを動的に停止します。 デバイスを動的に停止できない場合は、デバイス情報セットの [パラメーターのインストール] ブロックにフラグが設定され、最終的にユーザーにコンピューターの再起動を求めるメッセージが表示されます。

デバイスの削除は、すべてのハードウェア プロファイルに対してグローバルであるか、DIF_REMOVE要求のクラス インストール パラメーターを提供するSP_REMOVEDEVICE_PARAMS構造体の Scope メンバーによって指定された 1 つのハードウェア プロファイルに固有です。 構成固有の削除は、ルート列挙デバイスにのみ適しており、システム コードからのみ要求する必要があります。

SetupDiRemoveDevice の呼び出し元は、Administrators グループのメンバーである必要があります。

メモ SetupDiRemoveDevice を呼び出す必要があるのは 、クラス インストーラー のみで、 SetupDiRemoveDevice が既定のデバイス削除操作を完了した後にクラス インストーラーがデバイス 削除操作を実行する必要がある場合のみです。 このような状況では、インストーラーがDIF_REMOVE要求を処理するときに、クラス インストーラーが SetupDiRemoveDevice を直接呼び出す必要があります。 既定のハンドラーの呼び出しの詳細については、「 既定の DIF コード ハンドラーの呼び出し」を参照してください。
 

要件

要件
サポートされている最小のクライアント Microsoft Windows 2000 以降のバージョンの Windows で使用できます。
対象プラットフォーム デスクトップ
Header setupapi.h (Setupapi.h を含む)
Library Setupapi.lib
[DLL] Setupapi.dll

こちらもご覧ください

SP_DEVINFO_DATA

SP_REMOVEDEVICE_PARAMS