SetupDiSetClassPropertyW 関数 (setupapi.h)
SetupDiSetClassProperty 関数は、デバイス セットアップ クラスまたはデバイスインターフェイス クラスのクラス プロパティを設定します。
構文
WINSETUPAPI BOOL SetupDiSetClassPropertyW(
[in] const GUID *ClassGuid,
[in] const DEVPROPKEY *PropertyKey,
[in] DEVPROPTYPE PropertyType,
[in, optional] const PBYTE PropertyBuffer,
[in] DWORD PropertyBufferSize,
[in] DWORD Flags
);
パラメーター
[in] ClassGuid
デバイス プロパティを設定するデバイス セットアップ クラスまたはデバイス インターフェイス クラスを識別する GUID へのポインター。 クラス型を指定する方法については、 Flags パラメーターを参照してください。
[in] PropertyKey
設定するデバイス クラス プロパティのデバイス プロパティ キーを表す DEVPROPKEY 構造体へのポインター。
[in] PropertyType
デバイス クラス プロパティのプロパティ データ型識別子を表す DEVPROPTYPE 型の値。 プロパティ データ型識別子の詳細については、このトピックで後述する 「解説 」セクションを参照してください。
[in, optional] PropertyBuffer
デバイス クラスのプロパティ値を含むバッファーへのポインター。 プロパティまたはデータが削除されている場合は、このポインターを NULL に設定し、 PropertyBufferSize を 0 に設定する必要があります。 プロパティ データの詳細については、このトピックで後述 する「解説 」セクションを参照してください。
[in] PropertyBufferSize
PropertyBuffer バッファーのサイズ (バイト単位)。 PropertyBuffer が NULL に設定されている場合は、PropertyBufferSize を 0 に設定する必要があります。
[in] Flags
クラスがデバイス セットアップ クラスかデバイス インターフェイス クラスかを指定する、次のいずれかの値です。
DICLASSPROP_INSTALLER
ClassGuid は 、デバイス セットアップ クラスを指定します。 このフラグは、DICLASSPROP_INTERFACEでは使用できません。
DICLASSPROP_INTERFACE
ClassGuid は 、デバイス インターフェイス クラスを指定します。 このフラグは、DICLASSPROP_INSTALLERでは使用できません。
戻り値
SetupDiSetClassProperty は、成功した場合 に TRUE を 返します。 それ以外の場合は FALSE を返し、ログに記録されたエラーは GetLastError を呼び出すことによって取得できます。
次の表に、この関数がログに記録する可能性がある一般的なエラー コードの一部を示します。
リターン コード | 説明 |
---|---|
|
Flags の値が無効です。 |
|
ClassGuid で指定されたデバイス セットアップ クラスが無効です。 このエラーは、DICLASSPROP_INSTALLER フラグが指定されている場合にのみ発生します。 |
|
デバイス インターフェイス参照文字列が無効です。 このエラーは、DICLASSPROP_INTERFACE フラグが指定されている場合にのみ発生します。 |
|
PropertyKey によって提供されるプロパティ キーが無効です。 |
|
指定されていない内部データ値が無効でした。 ClassGuid 値が有効な GUID ではない場合、またはプロパティ値が PropertyType で指定されたプロパティの種類と一致しない場合、このエラーがログに記録される可能性があります。 |
|
ユーザー バッファーが無効です。 1 つの可能性は、 PropertyBuffer が NULL で、 PropertyBufferSize が 0 ではないということです。 |
|
ClassGuid で指定されたデバイス インターフェイス クラスが存在しません。 このエラーは、DICLASSPROP_INTERFACE フラグが指定されている場合にのみ発生します。 |
|
システム呼び出しに渡された内部データ バッファーが小さすぎます。 |
|
操作を完了するのに十分なシステム メモリが不足していました。 |
|
指定されていない項目が見つかりませんでした。 1 つの可能性は、削除するプロパティが存在しないということです。 |
|
呼び出し元には管理者特権がありません。 |
注釈
SetupDiSetClassProperty は、 統合デバイス プロパティ モデルの一部です。
SetupAPI では、Unicode バージョンの SetupDiSetClassProperty のみがサポートされます。
デバイス インターフェイス プロパティを設定するには 、SetupDiSetClassProperty の呼び出し元が Administrators グループのメンバーである必要があります。
SetupDiSetClassProperty では、property-data-type 識別子とプロパティ値に対する要件が適用されます。
ローカル コンピューター上のデバイス クラスに設定されているデバイス プロパティを表すデバイス プロパティ キーを取得するには、 SetupDiGetClassPropertyKeys を呼び出します。
ローカル コンピューターでデバイス クラス プロパティを取得するには、 SetupDiGetClassProperty を呼び出し、リモート コンピューターでデバイス クラス プロパティを取得するには、 SetupDiGetClassPropertyEx を呼び出します。
リモート コンピューターでデバイス クラス プロパティを設定するには、 SetupDiSetClassPropertyEx を呼び出します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista 以降のバージョンの Windows で使用できます。 |
対象プラットフォーム | Desktopユニバーサルの場合は、CM_Set_Class_Propertyを呼び出します |
Header | setupapi.h (Setupapi.h を含む) |
Library | Setupapi.lib |