SetupDiGetClassPropertyKeys 関数 (setupapi.h)

SetupDiGetClassPropertyKeys 関数は、デバイス セットアップ クラスまたはデバイス インターフェイス クラスに設定されているデバイス プロパティを表すデバイス プロパティ キーの配列を取得します

構文

WINSETUPAPI BOOL SetupDiGetClassPropertyKeys(
  [in]            const GUID *ClassGuid,
  [out, optional] DEVPROPKEY *PropertyKeyArray,
  [in]            DWORD      PropertyKeyCount,
  [out, optional] PDWORD     RequiredPropertyKeyCount,
  [in]            DWORD      Flags
);

パラメーター

[in] ClassGuid

デバイス セットアップ クラスまたはデバイス インターフェイス クラスを表す GUID へのポインター。 SetupDiGetClassPropertyKeys は、指定したクラスに設定されているデバイス プロパティを表すデバイス プロパティ キーの配列を取得します。 クラス型の指定については、 Flags パラメーターに関するページを参照してください。

[out, optional] PropertyKeyArray

DEVPROPKEY 型の値の配列を受け取るバッファーへのポインター。各値は、デバイス クラスに設定されたデバイス プロパティを表すデバイス プロパティ キーです。 ポインターは省略可能であり、 NULL にすることができます。 詳細については、このトピックで後述する 「解説 」セクションを参照してください。

[in] PropertyKeyCount

PropertyKeyArray バッファーの DEVPROPKEY 型の値のサイズ。 PropertyKeyArrayNULL に設定されている場合は、PropertyKeyCount を 0 に設定する必要があります。

[out, optional] RequiredPropertyKeyCount

要求されたプロパティ キーの数を受け取る DWORD 型の変数へのポインター。 パラメーターは省略可能であり、 NULL に設定できます。

[in] Flags

次のいずれかの値。デバイス セットアップ クラスまたはデバイス インターフェイス クラスのプロパティ キーを取得するかどうかを指定します。

DICLASSPROP_INSTALLER

ClassGuid は 、デバイス セットアップ クラスを指定します。 このフラグは、DICLASSPROP_INTERFACEでは使用できません。

DICLASSPROP_INTERFACE

ClassGuid は 、デバイス インターフェイス クラスを指定します。 このフラグは、DICLASSPROP_INSTALLERでは使用できません。

戻り値

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

次の表には、この関数がログに記録する可能性がある一般的なエラー コードの一部が含まれています。

リターン コード 説明
ERROR_INVALID_FLAGS
Flags の値が無効です。
ERROR_INVALID_CLASS
DICLASSPROP_INSTALLER フラグが指定されている場合、このエラー コードは ClassGuid で指定されたデバイス セットアップ クラスが存在しないことを示します。
ERROR_INVALID_REFERENCE_STRING
ClassGuild で指定されたデバイス インターフェイスの参照文字列が無効です。 このエラーは、DICLASSPROP_INTERFACE フラグが指定されている場合に返すことができます。
ERROR_INVALID_DATA
指定されていないデータ値が無効です。 1 つの可能性として、 ClassGuid 値が無効です。
ERROR_INVALID_PARAMETER
指定されていないパラメーターが無効です。
ERROR_INVALID_USER_BUFFER
ユーザー バッファーが無効です。 1 つの可能性は、 PropertyKeyArrayNULL で、 PropertKeyCount が 0 ではないということです。
ERROR_NO_SUCH_INTERFACE_CLASS
DICLASSPROP_INTERFACE フラグが指定されている場合、このエラー コードは ClassGuid で指定されたデバイス インターフェイス クラスが存在しないことを示します。
ERROR_INSUFFICENT_BUFFER
PropertyKeyArray バッファーは、すべてのプロパティ キーを保持するのに十分な大きさではありません。または、システム呼び出しに渡された内部データ バッファーが小さすぎます。
ERROR_NOT_ENOUGH_MEMORY
操作を完了するのに十分なシステム メモリが不足していました。
ERROR_ACCESS_DENIED
呼び出し元には管理者特権がありません。

解説

SetupDiGetClassPropertyKeys は、 統合デバイス プロパティ モデルの一部です。

デバイス クラスのデバイス プロパティ キーを取得するには、 SetupDiGetClassPropertyKeys の呼び出し元が Administrators グループのメンバーである必要があります。

PropertyKeyArray バッファーが要求されたすべてのプロパティ キーを保持するのに十分な大きさでない場合、SetupDiGetClassPropertyKeys はプロパティ キーを取得せず、ERROR_INSUFFICIENT_BUFFERを返します。 呼び出し元が RequiredPropertyKeyCount ポインターを指定した場合、SetupDiGetClassPropertyKeys は、PropertyKeyArray バッファーの必須サイズ (DEVPROPKEY 型の値) に *RequiredPropertyKeyCount の値を設定します

ローカル コンピューターでデバイス クラス プロパティを取得するには、 SetupDiGetClassProperty を呼び出します。 ローカル コンピューターでデバイス クラス プロパティを設定するには、 SetupDiSetClassProperty を呼び出します。

リモート コンピューター上のデバイス セットアップ クラスまたはデバイス インターフェイス クラスのプロパティ キーを取得するには、 SetupDiGetClassPropertyKeysEx を呼び出します。

要件

   
サポートされている最小のクライアント Windows Vista 以降のバージョンの Windows で使用できます。
対象プラットフォーム Desktopユニバーサルの場合は、CM_Get_Class_Property_Keysを呼び出します
Header setupapi.h (Setupapi.h を含む)
Library Setupapi.lib
[DLL] Setupapi.dll

関連項目

SetupDiGetClassProperty

SetupDiGetClassPropertyKeysEx

SetupDiSetClassProperty