SetupDiEnumDriverInfoA 関数 (setupapi.h)

SetupDiEnumDriverInfo 関数は、ドライバー リストのメンバーを列挙します。

構文

WINSETUPAPI BOOL SetupDiEnumDriverInfoA(
  [in]           HDEVINFO           DeviceInfoSet,
  [in, optional] PSP_DEVINFO_DATA   DeviceInfoData,
  [in]           DWORD              DriverType,
  [in]           DWORD              MemberIndex,
  [out]          PSP_DRVINFO_DATA_A DriverInfoData
);

パラメーター

[in] DeviceInfoSet

列挙するドライバーの一覧を含む デバイス情報セット へのハンドル。

[in, optional] DeviceInfoData

DeviceInfoSet のデバイス情報要素を指定するSP_DEVINFO_DATA構造体へのポインター。 このパラメーターは省略可能であり、 NULL にすることができます。 このパラメーターを指定すると、 SetupDiEnumDriverInfo は指定したデバイスのドライバーリストを列挙します。 このパラメーターが NULL の場合、 SetupDiEnumDriverInfoDeviceInfoSet に関連付けられているグローバル クラス ドライバー リストを列挙します (このリストの種類はSPDIT_CLASSDRIVER)。

[in] DriverType

列挙するドライバー リストの種類。これは、次のいずれかの値である必要があります。

SPDIT_CLASSDRIVER

クラス ドライバーの一覧を列挙します。 DeviceInfoData が指定されていない場合は、このドライバー リストの種類を指定する必要があります。

SPDIT_COMPATDRIVER

指定したデバイスの互換性のあるドライバーの一覧を列挙します。 このドライバー リストの種類は、 DeviceInfoData も指定されている場合にのみ指定できます。

[in] MemberIndex

取得するドライバー情報メンバーの 0 から始まるインデックス。

[out] DriverInfoData

列挙されたドライバーに関する情報を受け取る呼び出し元初期化 SP_DRVINFO_DATA 構造体へのポインター。 呼び出し元は DriverInfoData を設定する必要があります。cbSize to sizeof(SP_DRVINFO_DATA) してから SetupDiEnumDriverInfo を呼び出します。 cbSize メンバーが正しく設定されていない場合、SetupDiEnumDriverInfoFALSE を返します

戻り値

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

注釈

ドライバー情報セットのメンバーを列挙するには、インストーラーはまず、MemberIndex パラメーターを 0 に設定して SetupDiEnumDriverInfo を呼び出す必要があります。 その後、 MemberIndex をインクリメントし、値がなくなったら SetupDiEnumDriverInfo を呼び出す必要があります。 これ以上値がない場合、関数は失敗し、 GetLastError の呼び出しはERROR_NO_MORE_ITEMSを返します。

ポインター DriverInfoData によって提供されるSP_DRVINFO_DATA構造体の cbSize メンバーを適切に初期化しないと、関数は失敗し、エラー ERROR_INVALID_USER_BUFFERログに記録されます。

特定のデバイスまたはデバイス情報セットのグローバル クラス ドライバー リストに関連付けられているドライバーの一覧を作成するには、まず SetupDiBuildDriverInfoList を使用してから、そのリストを SetupDiEnumDriverInfo に渡します。

Note

setupapi.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして SetupDiEnumDriverInfo を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

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

こちらもご覧ください

SetupDiBuildDriverInfoList