Поделиться через


Метод IWDFUnifiedPropertyStore::SetPropertyData (wudfddi.h)

[Предупреждение: UMDF 2 является последней версией UMDF и заменяет UMDF 1. Все новые драйверы UMDF должны быть написаны с помощью UMDF 2. Новые функции не добавляются в UMDF 1, а поддержка UMDF 1 в более новых версиях Windows 10 ограничена. Универсальные драйверы 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 указывает, что свойство не зависит от языка (т. е. не относится к какому-либо языку). Не устанавливайте для этого параметра значение LOCALE_SYSTEM_DEFAULT или LOCALE_USER_DEFAULT. Дополнительные сведения о значениях LCID для конкретного языка см. в разделе Структура LCID.

[in] Flags

Зарезервировано. Драйверы должны задать для этого значения значение 0.

[in] PropertyType

Указатель на значение DEVPROPTYPE , указывающее тип данных, предоставляемых в буфере PropertyData .

[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.
 

Этот метод может возвращать значение типа HRESULT, соответствующее одному из других значений, содержащихся в Winerror.h .

Комментарии

Драйверы на основе платформы используют метод SetPropertyData для изменения свойств устройства, определенных как часть единой модели свойств устройства.

В частности, этот метод можно использовать для изменения аппаратного ключа устройства или экземпляра класса интерфейса устройства. При вызове IWDFUnifiedPropertyStoreFactory::RetrieveUnifiedDevicePropertyStore задайте для элемента RootClass параметра RootSpecifier значение WdfPropertyStoreRootClassHardwareKey или WdfPropertyStoreRootClassDeviceInterfaceKey.

Если указать WdfPropertyStoreRootClassHardwareKey, то при вызове SetPropertyData необходимо указать пользовательское значение DEVPROPKEY в параметре PropertyKey , а не ключ, определяемый PnP. Значение должно быть задано ранее путем вызова SetPropertyData, функции свойства устройства SetupDI или с помощью директивы 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
Верхняя часть wudfddi.h
DLL WUDFx.dll

См. также раздел

GetPropertyData

IWDFUnifiedPropertyStore

IWDFUnifiedPropertyStoreFactory

RetrieveUnifiedDevicePropertyStore

WDF_PROPERTY_STORE_ROOT

WDF_PROPERTY_STORE_ROOT_CLASS