SetupDiGetClassPropertyExW 関数 (setupapi.h)
SetupDiGetClassPropertyEx 関数は、ローカル コンピューターまたはリモート コンピューター上のデバイス セットアップ クラスまたはデバイス インターフェイス クラスのクラス プロパティを取得します。
構文
WINSETUPAPI BOOL SetupDiGetClassPropertyExW(
[in] const GUID *ClassGuid,
[in] const DEVPROPKEY *PropertyKey,
[out] DEVPROPTYPE *PropertyType,
[out, optional] PBYTE PropertyBuffer,
[in] DWORD PropertyBufferSize,
[out, optional] PDWORD RequiredSize,
[in] DWORD Flags,
[in, optional] PCWSTR MachineName,
PVOID Reserved
);
パラメーター
[in] ClassGuid
デバイス クラスのデバイス プロパティを取得するデバイス セットアップ クラスまたはデバイス インターフェイス クラスを識別する GUID へのポインター。 クラス型の指定については、 Flags パラメーターに関するページを参照してください。
[in] PropertyKey
要求されたデバイス クラス プロパティのデバイス プロパティ キーを表す DEVPROPKEY 構造体へのポインター。
[out] PropertyType
要求されたデバイス クラス プロパティのプロパティ データ型識別子を受け取る DEVPROPTYPE 型の変数へのポインター。ここで、プロパティ データ型識別子は基本データ型識別子間のビットごとの OR であり、基本データ型が変更された場合はプロパティ データ型修飾子です。
[out, optional] PropertyBuffer
要求されたデバイス クラス プロパティを受け取るバッファーへのポインター。 SetupDiGetClassPropertyEx は、バッファーがすべてのプロパティ値データを保持するのに十分な大きさの場合にのみ、要求されたプロパティ値を取得します。 ポインターには NULL を指定できます。 ポインターが NULL に設定され、 RequiredSize が指定されている場合、 SetupDiGetClassPropertyEx は*RequiredSize のデバイス クラス プロパティのサイズをバイト単位で返します。
[in] PropertyBufferSize
PropertyBuffer バッファーのサイズ (バイト単位)。 PropertyBuffer が NULL に設定されている場合は、PropertyBufferSize を 0 に設定する必要があります。
[out, optional] RequiredSize
プロパティが取得された場合はデバイス クラス プロパティのサイズ (バイト単位) を受け取る DWORD 型の変数へのポインター。バッファーが十分な大きさでない場合は必要なバッファー サイズ。 このポインターは NULL に設定できます。
[in] Flags
クラスがデバイス セットアップ クラスかデバイス インターフェイス クラスかを指定する、次のいずれかの値です。
DICLASSPROP_INSTALLER
ClassGuid は 、デバイス セットアップ クラスを指定します。 このフラグは、DICLASSPROP_INTERFACEでは使用できません。
DICLASSPROP_INTERFACE
ClassGuid は 、デバイス インターフェイス クラスを指定します。 このフラグは、DICLASSPROP_INSTALLERでは使用できません。
[in, optional] MachineName
コンピューターの "\" プレフィックスを含む UNC 名を含む NULL で終わる文字列へのポインター。 ポインターは NULL に設定できます。 MachineName が NULL の場合、SetupDiGetClassPropertyEx は要求されたデバイス クラス プロパティをローカル コンピューターから取得します。
注意事項
この機能は削除されたため、この関数を使用してリモート マシンにアクセスすることは、Windows 8 および Windows Server 2012 以降ではサポートされていません。
Reserved
このパラメーターは NULL に設定する必要があります。
戻り値
SetupDiGetClassPropertyEx は、成功した場合に TRUE を 返します。 それ以外の場合は FALSE を返し、ログに記録されたエラーは GetLastError を呼び出すことによって取得できます。
次の表には、この関数がログに記録する可能性がある一般的なエラー コードの一部が含まれています。
リターン コード | 説明 |
---|---|
|
Flags の値は 0 ではありません。 |
|
ClassGuid で指定されたデバイス セットアップ クラスが無効です。 このエラーは、DICLASSPROP_INSTALLER フラグが指定されている場合にのみ発生します。 |
|
指定されていないパラメーターが無効です。 |
|
PropertyKey によって提供されるプロパティ キーが無効です。 |
|
デバイス インターフェイス参照文字列が無効です。 このエラーは、DICLASSPROP_INTERFACE フラグが指定されている場合に返すことができます。 |
|
指定されていない内部データ値が無効でした。 |
|
ユーザー バッファーが無効です。 1 つの可能性は、 PropertyBuffer が NULL で、 PropertyBufferSize が 0 ではないことです。 |
|
MachineName で指定されたコンピューター名が無効です。 |
|
ClassGuid で指定されたデバイス インターフェイス クラスが存在しません。 このエラーは、DICLASSPROP_INTERFACE フラグが指定されている場合にのみ発生します。 |
|
システム呼び出しに渡された内部データ バッファーが小さすぎます。 |
|
操作を完了するのに十分なシステム メモリが不足していました。 |
|
要求されたデバイス プロパティが存在しません。 |
|
呼び出し元には管理者特権がありません。 |
注釈
SetupDiGetClassPropertyEx は、 統合デバイス プロパティ モデルの一部です。
SetupAPI では、 SetupDiGetClassPropertyEx の Unicode バージョンのみがサポートされます。
デバイス インターフェイス プロパティを設定するには、 SetupDiGetClassPropertyEx の呼び出し元が Administrators グループのメンバーである必要があります。
リモート コンピューター上のデバイス クラスに設定されているデバイス プロパティを表すデバイス プロパティ キーを取得するには、 SetupDiGetClassPropertyKeysEx を呼び出します。
ローカル コンピューターでデバイス クラス プロパティを取得するには、 SetupDiGetClassProperty を呼び出します。
ローカル コンピューターでデバイス クラス プロパティを設定するには、SetupDiSetClassProperty を呼び出し、リモート コンピューターでデバイス クラス プロパティを設定するには、SetupDiSetClassPropertyEx を呼び出します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista 以降のバージョンの Windows で使用できます。 |
対象プラットフォーム | Desktopユニバーサルの場合は、CM_Get_Class_Property_ExWを呼び出します |
Header | setupapi.h (Setupapi.h を含む) |
Library | Setupapi.lib |