IWDFUnifiedPropertyStore::SetPropertyData メソッド (wudfddi.h)

[警告: UMDF 2 は UMDF の最新バージョンであり、UMDF 1 よりも優先されます。 すべての新しい UMDF ドライバーは、UMDF 2 を使用して記述する必要があります。 UMDF 1 には新機能が追加されておらず、新しいバージョンのWindows 10では UMDF 1 のサポートが制限されています。 ユニバーサル Windows ドライバーでは UMDF 2 を使用する必要があります。 詳細については、「UMDF を使用したはじめに」を参照してください。

SetPropertyData メソッドは、デバイス プロパティの現在の設定を変更します。

構文

HRESULT SetPropertyData(
  [in]           const DEVPROPKEY *PropertyKey,
  [in]           LCID             Lcid,
  [in]           ULONG            Flags,
  [in]           DEVPROPTYPE      PropertyType,
  [in]           ULONG            PropertyDataSize,
  [in, optional] PVOID            PropertyData
);

パラメーター

[in] PropertyKey

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

[in] Lcid

ロケール識別子を指定します。 このパラメーターは、言語固有の LCID 値または LOCALE_NEUTRALに設定します。 LOCALE_NEUTRAL LCID は、 プロパティが言語に依存しないことを指定します (つまり、どの言語にも固有ではありません)。 このパラメーターは、LOCALE_SYSTEM_DEFAULTまたはLOCALE_USER_DEFAULTに設定しないでください。 言語固有の LCID 値の詳細については、「 LCID 構造体」を参照してください。

[in] Flags

予約済み。 ドライバーは、この値を 0 に設定する必要があります。

[in] PropertyType

PropertyData バッファーで提供されるデータの型を指定する DEVPROPTYPE 値へのポインター。

[in] PropertyDataSize

PropertyData が指すバッファーのサイズ (バイト単位)。

[in, optional] PropertyData

デバイス プロパティ データへのポインター。 指定したプロパティを削除するには、このパラメーターを NULL に設定します。

戻り値

SetPropertyData は、操作が成功した場合にS_OKを返します。 それ以外の場合、メソッドは次の値を返す可能性があります。

リターン コード 説明
E_OUTOFMEMORY
フレームワークのメモリの割り当て試行が失敗しました。
HRESULT_FROM_WIN32 (ERROR_INVALID_PARAMETER)
ドライバーが WdfPropertyStoreRootClassDeviceInterfaceKey を指定する場合、要求されたインターフェイスは、UMDF ドライバーが以前に登録したインターフェイスである必要があります。
HRESULT_FROM_WIN32 (STATUS_NOT_SUPPORTED)
ドライバーは、Windows 8以降でのみ、デバイス インターフェイスのプロパティ データを変更できます。
 

このメソッドは、 Winerror.h に含まれる他の値のいずれかに対応する HRESULT 型の値を返す場合があります。

注釈

フレームワーク ベースのドライバーでは 、SetPropertyData メソッドを使用して、統合デバイス プロパティ モデルの一部として定義されているデバイス プロパティを変更します。

特に、このメソッドを使用して、デバイスの ハードウェア キー またはデバイス インターフェイス クラスのインスタンスを変更できます。 IWDFUnifiedPropertyStoreFactory::RetrieveUnifiedDevicePropertyStore を呼び出すときに、RootSpecifier パラメーターの RootClass メンバーを WdfPropertyStoreRootClassHardwareKey または WdfPropertyStoreRootClassDeviceInterfaceKey に設定します。

WdfPropertyStoreRootClassHardwareKey を指定した場合は、SetPropertyData を呼び出すときに、PnP で定義されたキーではなく、PropertyKey パラメーターにカスタム DEVPROPKEY 値を指定する必要があります。 値は、 SetPropertyDataSetupDI デバイス プロパティ関数、または INF AddProperty ディレクティブを使用して、以前に設定されている必要があります。

ドライバーが WdfPropertyStoreRootClassDeviceInterfaceKey を指定する場合、要求されたインターフェイスは、UMDF ドライバーが以前に実行時に登録したインターフェイスである必要があります。

ドライバーが INF ファイルにインターフェイスを登録する場合は、INF に関連付けられているプロパティも設定する必要があります。

レジストリへのアクセスの詳細については、「 UMDF ベースのドライバーでのレジストリの使用」を参照してください。

HRESULT
SetFriendlyName(
    _In_ IWDFUnifiedPropertyStore * pUnifiedPropertyStore
    )
{
    HRESULT hr = S_OK;
    WCHAR friendlyName[] = L"UMDF OSR USB Fx2 Test Device";

    hr = pUnifiedPropertyStore->SetPropertyData(
            &DEVPKEY_Device_FriendlyName,
            0, //Lcid
            0, //Flags
            DEVPROP_TYPE_STRING, //Type
            sizeof(friendlyName),
            friendlyName
            );

    if (FAILED(hr))
    {
        TraceEvents(
            TRACE_LEVEL_ERROR,
            TEST_TRACE_DEVICE,             
            "SetPropertyData failed: hr = %!HRESULT!",
            hr
            );
        goto exit;
    }

exit:
    return hr;
}

要件

要件
サポート終了 UMDF 2.0 以降では使用できません。
対象プラットフォーム デスクトップ
最小 UMDF バージョン 1.11
Header wudfddi.h
[DLL] WUDFx.dll

こちらもご覧ください

GetPropertyData

IWDFUnifiedPropertyStore

IWDFUnifiedPropertyStoreFactory

RetrieveUnifiedDevicePropertyStore

WDF_PROPERTY_STORE_ROOT

WDF_PROPERTY_STORE_ROOT_CLASS