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 つの可能性は、 PropertyBufferNULL で、 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