次の方法で共有


SetupDiSelectBestCompatDrv 関数 (setupapi.h)

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

構文

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

パラメーター

[in] DeviceInfoSet

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

[in, out] DeviceInfoData

DeviceInfoSet のデバイス情報要素を指定するSP_DEVINFO_DATA構造体へのポインター。 SetupDiSelectBestCompatDrv は、指定されたデバイスの互換性のあるドライバーの一覧から、デバイス情報要素に最適なドライバーを選択します。

戻り値

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

注釈

SetupDiSelectBestCompatDrv の呼び出し元が Administrators グループのメンバーであり、デバイスのクラスが、選択したドライバーのクラスと異なる場合、SetupDiSelectBestCompatDrv はデバイスのクラスをドライバーのクラスに設定します。 この動作が望ましくない場合は、低い特権レベルでこの関数を呼び出します。

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

最適なドライバーの選択方法については、「 Windows でドライバーを選択する方法」を参照してください。

デバイスの選択したドライバーを取得するには、 SetupDiGetSelectedDriver を呼び出します。

要件

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

こちらもご覧ください

DIF_SELECTBESTCOMPATDRV

SP_DEVINFO_DATA