Метод 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, если операция выполнена успешно. В противном случае метод может вернуть следующие значения.
Код возврата | Описание |
---|---|
|
Попытка платформы выделить память завершилась сбоем. |
|
Если драйвер указывает WdfPropertyStoreRootClassDeviceInterfaceKey, запрошенным интерфейсом должен быть ранее зарегистрированный драйвером UMDF. |
|
Драйвер может изменять данные свойств интерфейса устройства только начиная с 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 |
См. также раздел
IWDFUnifiedPropertyStoreFactory