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 型の値)。 PropertyKeyArrayNULL に設定されている場合は、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
ユーザー バッファーが無効です。 PropertyKeyArrayNULL で、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