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 を呼び出すことによって取得できます。

次の表に、この関数がログに記録する可能性がある一般的なエラー コードの一部を示します。

リターン コード 説明
ERROR_INVALID_FLAGS
Flags の値が無効です。
ERROR_INVALID_CLASS
ClassGuid で指定されたデバイス セットアップ クラスが無効です。 このエラーは、DICLASSPROP_INSTALLER フラグが指定されている場合にのみ発生します。
ERROR_INVALID_REFERENCE_STRING
デバイス インターフェイス参照文字列が無効です。 このエラーは、DICLASSPROP_INTERFACE フラグが指定されている場合にのみ発生します。
ERROR_INVALID_REG_PROPERTY
PropertyKey によって提供されるプロパティ キーが無効です。
ERROR_INVALID_DATA
指定されていない内部データ値が無効でした。 ClassGuid 値が有効な GUID ではない場合、またはプロパティ値が PropertyType で指定されたプロパティの種類と一致しない場合、このエラーがログに記録される可能性があります。
ERROR_INVALID_USER_BUFFER
ユーザー バッファーが無効です。 1 つの可能性は、 PropertyBufferNULL で、 PropertyBufferSize が 0 ではないということです。
ERROR_NO_SUCH_INTERFACE_CLASS
ClassGuid で指定されたデバイス インターフェイス クラスが存在しません。 このエラーは、DICLASSPROP_INTERFACE フラグが指定されている場合にのみ発生します。
ERROR_INSUFFICIENT_BUFFER
システム呼び出しに渡された内部データ バッファーが小さすぎます。
ERROR_NOT_ENOUGH_MEMORY
操作を完了するのに十分なシステム メモリが不足していました。
ERROR_NOT_FOUND
指定されていない項目が見つかりませんでした。 1 つの可能性は、削除するプロパティが存在しないということです。
ERROR_ACCESS_DENIED
呼び出し元には管理者特権がありません。

注釈

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

こちらもご覧ください

SetupDiGetClassProperty

SetupDiGetClassPropertyEx

SetupDiGetClassPropertyKeys

SetupDiSetClassPropertyEx