SetupDiGetClassDevsExA 関数 (setupapi.h)
SetupDiGetClassDevsEx 関数は、ローカル コンピューターまたはリモート コンピューターの要求されたデバイス情報要素を含む デバイス情報セット へのハンドルを返します。
構文
WINSETUPAPI HDEVINFO SetupDiGetClassDevsExA(
[in, optional] const GUID *ClassGuid,
[in, optional] PCSTR Enumerator,
[in, optional] HWND hwndParent,
[in] DWORD Flags,
[in, optional] HDEVINFO DeviceInfoSet,
[in, optional] PCSTR MachineName,
PVOID Reserved
);
パラメーター
[in, optional] ClassGuid
デバイス セットアップ クラスの GUID または デバイス インターフェイス クラスへのポインター。 このポインターは省略可能であり、NULL
[in, optional] Enumerator
次を指定する NULL で終わる文字列へのポインター。
- プラグ アンド プレイ (PnP) 列挙子の識別子 (ID)。 この ID には、列挙子のグローバル一意識別子 (GUID) またはシンボリック名を指定できます。 たとえば、"PCI" を使用して PCI PnP 列挙子を指定できます。 PnP 列挙子のシンボリック名の他の例には、"USB"、"PCMCIA"、および "SCSI" があります。
- PnP デバイス インスタンス ID。 PnP デバイス インスタンス ID を指定する場合は、flags パラメーターでDIGCF_DEVICEINTERFACEを設定する必要があります。
列挙子の 値を設定する方法の詳細については、次の 解説 セクションを参照してください。
[in, optional] hwndParent
デバイス情報セットへのデバイス インスタンスのインストールに関連付けられているユーザー インターフェイスに使用する最上位ウィンドウへのハンドル。 このハンドルは省略可能であり、NULL
[in] Flags
デバイス情報セットに追加されるデバイス情報要素をフィルター処理する制御オプションを指定する DWORD 型の変数。 このパラメーターには、次のフラグの 1 つ以上のビットごとの OR を指定できます。 これらのコントロール オプションの組み合わせの詳細については、次の「解説」セクションを参照してください。
DIGCF_ALLCLASSES
指定したデバイス セットアップ クラスまたはデバイス インターフェイス クラスにインストールされているデバイスの一覧を返します。
DIGCF_DEVICEINTERFACE
指定したデバイス インターフェイス クラスのデバイス インターフェイスをサポートするデバイスを返します。 このフラグは、
DIGCF_DEFAULT
指定されたデバイス インターフェイス クラスに対して、システムの既定のデバイス インターフェイスに関連付けられているデバイスのみを返します (設定されている場合)。
DIGCF_PRESENT
現在存在するデバイスのみを返します。
DIGCF_PROFILE
現在のハードウェア プロファイルの一部であるデバイスのみを返します。
[in, optional] DeviceInfoSet
SetupDiGetClassDevsEx
[in, optional] MachineName
デバイスが存在するリモート コンピューターの名前を含む定数文字列へのポインター。
注意
この機能は削除されたため、この機能を使用してリモート コンピューターにアクセスすることは、Windows 8 および Windows Server 2012 以降ではサポートされていません。
Reserved
内部使用のために予約されています。 このパラメーターは、NULL
戻り値
操作が成功した場合、SetupDiGetClassDevsEx は、指定されたパラメーターと一致するすべてのインストール済みデバイスを含む デバイス情報セット へのハンドルを返します。 操作が失敗した場合、関数はINVALID_HANDLE_VALUEを返します。 拡張エラー情報を取得するには、GetLastError
備考
デバイス セットアップ クラスコントロールオプション
次のフィルター オプションを使用して、SetupDiGetClassDevsEx-
すべてのデバイス セットアップ クラスのデバイスを返すには、DIGCF_ALLCLASSES フラグを設定し、
ClassGuid パラメーターを NULL設定します。 - 特定のデバイス セットアップ クラスに対してのみデバイスを返すには、DIGCF_ALLCLASSESを設定せず、ClassGuid を使用してデバイス セットアップ クラスの GUID を指定します。
- システムに存在するデバイスのみを返すには、DIGCF_PRESENT フラグを設定します。
- 現在のハードウェア プロファイルの一部であるデバイスのみを返すには、DIGCF_PROFILE フラグを設定します。
-
特定の PnP
列挙子 のデバイスのみを返すには、列挙子 パラメーターを使用して、列挙子の GUID またはシンボリック名を指定します。 列挙子 が NULL場合 、SetupDiGetClassDevsEx は、すべての PnP 列挙子のデバイスを返します。
デバイス インターフェイス クラスコントロールオプション
次のフィルター オプションを使用して、SetupDiGetClassDevsEx-
任意のクラスのデバイス インターフェイスをサポートするデバイスを返すには、DIGCF_DEVICEINTERFACE フラグを設定し、DIGCF_ALLCLASSES フラグを設定し、ClassGuid
NULL 設定します。 この関数は、デバイス情報セットに、このようなデバイスを表すデバイス情報要素を追加し、デバイス情報要素に、デバイスがサポートするすべてのデバイス インターフェイスを含むデバイス インターフェイス リストを追加します。 - 指定したクラスのデバイス インターフェイスをサポートするデバイスのみを返すには、DIGCF_DEVICEINTERFACE フラグを設定し、ClassGuid パラメーターを使用して、デバイス インターフェイス クラスのクラス GUID を指定します。 この関数は、このようなデバイスを表すデバイス情報要素をデバイス情報セットに追加し、指定したクラスのデバイス インターフェイスを、そのデバイス情報要素のデバイス インターフェイス リストに追加します。
- システムの既定のインターフェイスをサポートするデバイスのみを返すには、設定されている場合は、指定したデバイス インターフェイス クラスに対してDIGCF_DEVICEINTERFACE フラグを設定し、DIGCF_DEFAULT フラグを設定し、ClassGuid を使用してデバイス インターフェイス クラスのクラス GUID を指定します。 この関数は、このようなデバイスを表すデバイス情報要素をデバイス情報セットに追加し、そのデバイス情報要素のデバイス インターフェイス リストにシステムの既定のインターフェイスを追加します。
-
指定されていないデバイス インターフェイス クラスのシステムの既定のインターフェイスをサポートするデバイスを返すには、DIGCF_DEVICEINTERFACE フラグを設定し、DIGCF_ALLCLASSES フラグを設定し、DIGCF_DEFAULT フラグを設定して、ClassGuid
NULLを します。 この関数は、このようなデバイスを表すデバイス情報要素をデバイス情報セットに追加し、そのデバイス情報要素のデバイス インターフェイス リストにシステムの既定のインターフェイスを追加します。
- システムに存在するデバイスのみを返すには、DIGCF_PRESENT フラグを設定します。
- 現在のハードウェア プロファイルの一部であるデバイスのみを返すには、DIGCF_PROFILE フラグを設定します。
-
特定のデバイスのみを返すには、DIGCF_DEVICEINTERFACE フラグを設定し、
Enumerator パラメーターを使用して、デバイスの 可能なすべてのデバイスを含めるには、列挙子デバイス インスタンス ID を指定します。NULLを に設定します。
デバイス インターフェイス クラスをサポートするデバイス セットアップ クラスのデバイスの取得
インストーラー SetupDiGetClassDevsEx を使用して、指定したデバイス インターフェイス クラスのデバイス インターフェイスをサポートする特定のデバイス セットアップ クラスのデバイスの一覧を取得できます。 たとえば、"マウントされたデバイス" インターフェイス クラスのデバイス インターフェイスをサポートし、"ボリューム" デバイス セットアップ クラスのメンバーであるローカル コンピューター上のすべてのデバイスの一覧を取得するには、インストーラーで次の操作を実行する必要があります。-
SetupDiCreateDeviceInfoList
呼び出して、"ボリューム" デバイス セットアップ クラスの空のデバイス情報セットを作成します。 ClassGuid "Volume" デバイス セットアップ クラスのクラス GUID へのポインターに設定し、必要に応じて hwndParent 設定します。 このような呼び出しに応答して、この関数は HDEVINFO 型のハンドルをデバイス情報セットに返します。 - 次の設定 SetupDiGetClassDevsEx を呼び出します。
- ClassGuid を、"マウントされたデバイス" デバイス インターフェイス クラスのクラス GUID へのポインターに設定します。
- フラグ をDIGCF_DEVICEINTERFACEに設定します。
- DeviceInfoSet
手順 (1) で取得した HDEVINFO ハンドルに設定します。 - hwndParent
必要に応じて設定し、残りのパラメーターを NULL します。
手記
setupapi.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして SetupDiGetClassDevsEx を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Microsoft Windows 2000 以降のバージョンの Windows で使用できます。 |
ターゲット プラットフォーム の |
デスクトップ |
ヘッダー | setupapi.h (Setupapi.h を含む) |
ライブラリ | Setupapi.lib |
関連項目
SetupDiCreateDeviceInfoListEx の
SetupDiDestroyDeviceInfoList の
SetupDiEnumDeviceInterfaces の
SetupDiGetClassDevs の