SetupDiSetClassPropertyExW 関数 (setupapi.h)

SetupDiSetClassPropertyEx 関数は、ローカル コンピューターまたはリモート コンピューター上のデバイス セットアップ クラスまたはデバイス インターフェイス クラスのデバイス プロパティを設定します。

構文

WINSETUPAPI BOOL SetupDiSetClassPropertyExW(
  [in]           const GUID       *ClassGuid,
  [in]           const DEVPROPKEY *PropertyKey,
  [in]           DEVPROPTYPE      PropertyType,
  [in, optional] const PBYTE      PropertyBuffer,
  [in]           DWORD            PropertyBufferSize,
  [in]           DWORD            Flags,
  [in, optional] PCWSTR           MachineName,
                 PVOID            Reserved
);

パラメーター

[in] ClassGuid

デバイス のプロパティを設定するデバイス セットアップ クラスまたはデバイス インターフェイス クラスを識別する GUID へのポインター。 クラス型を指定する方法の詳細については、 Flags パラメーターに関するページを参照してください。

[in] PropertyKey

設定するデバイス クラス プロパティのデバイス プロパティ キーを表す DEVPROPKEY 構造体へのポインター。

[in] PropertyType

クラス プロパティの property-data-type 識別子を表す DEVPROPTYPE 型の値。 プロパティ データ型識別子の詳細については、このトピックで後述する 「解説 」セクションを参照してください。

[in, optional] PropertyBuffer

クラス プロパティ値を含むバッファーへのポインター。 プロパティまたはプロパティ値を削除する場合は、このポインターを NULL に設定し、 PropertyBufferSize を 0 に設定する必要があります。 プロパティ値の要件の詳細については、このトピックで後述する 「解説 」セクションを参照してください。

[in] PropertyBufferSize

PropertyBuffer バッファーのサイズ (バイト単位)。 プロパティ バッファー のサイズは、 PropertyType によって提供される property-data-type 識別子と一致している必要があります。 PropertyBuffer が NULL に設定されている場合は、PropertyBufferSize を 0 に設定する必要があります。

[in] Flags

クラスがデバイス セットアップ クラスかデバイス インターフェイス クラスかを指定する、次のいずれかの値です。

DICLASSPROP_INSTALLER

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

DICLASSPROP_INTERFACE

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

[in, optional] MachineName

コンピューターの "\" プレフィックスを含む UNC 名を含む NULL で終わる Unicode 文字列へのポインター。 このポインターは NULL に設定できます。 ポインターが NULL の場合、 SetupDiSetClassPropertyEx はローカル コンピューターにインストールされているクラスのクラス プロパティを設定します。

注意事項

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

Reserved

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

戻り値

SetupDiSetClassPropertyEx は、成功した場合に 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 つの可能性は、 PropertyBuffer が NULL で、 PropertyBufferSize が 0 ではないことです。
ERROR_INVALID_MACHINENAME
MachineName で指定されたコンピューター名が無効です。
ERROR_NO_SUCH_INTERFACE_CLASS
ClassGuid で指定されたデバイス インターフェイス クラスが存在しません。 このエラーは、DICLASSPROP_INTERFACE フラグが指定されている場合にのみ発生します。
ERROR_INSUFFICIENT_BUFFER
システム呼び出しに渡された内部データ バッファーが小さすぎます。
ERROR_NOT_ENOUGH_MEMORY
操作を完了するのに十分なシステム メモリが不足していました。
ERROR_NOT_FOUND
指定されていない項目が見つかりませんでした。 1 つの可能性は、削除するプロパティが存在しないことです。
ERROR_ACCESS_DENIED
呼び出し元には管理者特権がありません。

注釈

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

SetupAPI では、 SetupDiSetClassPropertyEx の Unicode バージョンのみがサポートされます。

デバイス インターフェイス プロパティを設定するには 、SetupDiSetClassPropertyEx の呼び出し元が Administrators グループのメンバーである必要があります。

SetupDiSetClassPropertyEx は、property-data-type 識別子とプロパティ値に要件を適用します。

リモート コンピューター上のデバイス クラスに設定されているデバイス プロパティを表すデバイス プロパティ キーを取得するには、 SetupDiGetClassPropertyKeysEx を呼び出します。

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

ローカル コンピューターでデバイス クラス プロパティを設定するには、 SetupDiSetClassProperty を呼び出します。

要件

要件 値
サポートされている最小のクライアント Windows Vista 以降のバージョンの Windows で使用できます。
対象プラットフォーム デスクトップ
Header setupapi.h (Setupapi.h を含む)
Library Setupapi.lib

こちらもご覧ください

SetupDiGetClassProperty

SetupDiGetClassPropertyEx

SetupDiGetClassPropertyKeysEx

SetupDiSetClassProperty