SetupDiSelectDevice 関数 (setupapi.h)

SetupDiSelectDevice 関数は、DIF_SELECTDEVICE要求の既定のハンドラーです。

構文

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

パラメーター

[in] DeviceInfoSet

ドライバーを選択するデバイスを表すデバイス情報要素を含むデバイス 情報セット へのハンドル。

[in, out] DeviceInfoData

デバイス情報要素を指定する SP_DEVINFO_DATA 構造体へのポインター。 このパラメーターは省略可能であり、 NULL にすることができます。 このパラメーターを指定すると、SetupDiSelectDevice は指定したデバイスのドライバーを選択し、DeviceInfoData を設定します。選択したドライバーのデバイス セットアップ クラスの GUID に対する ClassGuid。 このパラメーターが NULL の場合、 SetupDiSelectDevice はDeviceInfoSet のグローバル クラス ドライバー リストで選択したドライバーを設定します。

戻り値

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

注釈

SetupDiSelectDevice は、ユーザーが指定したデバイスのドライバーを選択できるようにするユーザー インターフェイス、またはデバイスが指定されていない場合はデバイス情報セットを処理します。 デバイスのSP_DEVINSTALL_PARAMS構造の [フラグ] フィールド、またはデバイスが指定されていない場合に設定されたデバイス情報を設定することで、呼び出し元はユーザー インターフェイスの特別な処理を指定できます。たとえば、ユーザーが OEM インストール ディスクからドライバーを選択できるようにします。

メモ クラス インストーラーのみが SetupDiSelectDevice を 呼び出す必要があり、 SetupDiSelectDevice が既定のドライバー選択操作を完了した後に、クラス インストーラーがドライバーの選択操作を実行する必要がある場合にのみ呼び出す必要があります。 このような状況では、インストーラーがDIF_SELECTDEVICE要求を処理するときに、クラス インストーラーが SetupDiSelectDevice を直接呼び出す必要があります。 既定のハンドラーの呼び出しの詳細については、「 既定の DIF コード ハンドラーの呼び出し」を参照してください。
 
SetupDiSelectDevice は、主に、デバイスをインストールする前に、ローカル コンピューター上のデバイスのドライバーを選択するように設計されています。 デバイス情報セットがリモート コンピューター用の場合、 SetupDiSelectDevice は失敗しませんが、デバイス情報セットは、その後、リモート コンピューターでの操作をサポートしない DIF_Xxx インストール要求または SetupDiXxx 関数で使用できないため、使用が制限されます。 特に、デバイス情報セットは、リモート コンピューターにデバイスをインストールするためのDIF_INSTALLDEVICEインストール要求の入力として使用できません。

要件

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

こちらもご覧ください

SP_DEVINSTALL_PARAMS

SetupDiCallClassInstaller