SetupDiGetClassPropertyKeysExW 関数 (setupapi.h)

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

構文

WINSETUPAPI BOOL SetupDiGetClassPropertyKeysExW(
  [in]            const GUID *ClassGuid,
  [out, optional] DEVPROPKEY *PropertyKeyArray,
  [in]            DWORD      PropertyKeyCount,
  [out, optional] PDWORD     RequiredPropertyKeyCount,
  [in]            DWORD      Flags,
  [in, optional]  PCWSTR     MachineName,
                  PVOID      Reserved
);

パラメーター

[in] ClassGuid

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

[out, optional] PropertyKeyArray

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

[in] PropertyKeyCount

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

[out, optional] RequiredPropertyKeyCount

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

[in] Flags

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

DICLASSPROP_INSTALLER

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

DICLASSPROP_INTERFACE

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

[in, optional] MachineName

コンピューターの "\" プレフィックスを含む UNC 名を含む NULL で終わる文字列へのポインター。 ポインターは NULL にすることができます。 ポインターが NULL の場合、 SetupDiGetClassPropertyKeysEx は ローカル コンピューターから要求された情報を取得します。

注意事項

この機能は削除されたため、この関数を使用してリモート マシンにアクセスすることは、Windows 8とWindows Server 2012以降はサポートされていません。

Reserved

このパラメーターは NULL に設定する必要があります。

戻り値

SetupDiGetClassPropertyKeysEx は、成功した場合に 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
ユーザー バッファーが無効です。 PropertyKeyArray が NULL で、PropertKeyCount が 0 ではない可能性があります。
ERROR_INVALID_MACHINENAME
MachineName で指定されたコンピューター名が無効です。
ERROR_NO_SUCH_INTERFACE_CLASS
DICLASSPROP_INTERFACE フラグが指定されている場合、このエラー コードは ClassGuid で指定されたデバイス インターフェイス クラスが存在しないことを示します。
ERROR_INSUFFICENT_BUFFER
PropertyKeyArray バッファーは、すべてのプロパティ キーを保持するのに十分な大きさではありません。または、システム呼び出しに渡された内部データ バッファーが小さすぎます。
ERROR_NOT_ENOUGH_MEMORY
操作を完了するのに十分なシステム メモリが不足していました。
ERROR_ACCESS_DENIED
呼び出し元には管理者特権がありません。

注釈

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

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

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

リモート コンピューターでデバイス クラス プロパティを取得するには、 SetupDiGetClassPropertyEx を呼び出し、リモート コンピューターでデバイス クラス プロパティを設定するには、 SetupDiSetClassPropertyEx を呼び出します。

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

要件

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

こちらもご覧ください

SetupDiGetClassPropertyEx

SetupDiGetClassPropertyKeys

SetupDiSetClassPropertyEx