Метод IWDFUnifiedPropertyStoreFactory::RetrieveUnifiedDevicePropertyStore (wudfddi.h)
[Предупреждение: UMDF 2 является последней версией UMDF и заменяет UMDF 1. Все новые драйверы UMDF должны быть написаны с помощью UMDF 2. Новые функции не добавляются в UMDF 1, а поддержка UMDF 1 в более новых версиях Windows 10 ограничена. Универсальные драйверы Windows должны использовать UMDF 2. Дополнительные сведения см. в разделе начало работы с помощью UMDF.]
Метод RetrieveUnifiedDevicePropertyStore извлекает единый интерфейс хранилища свойств.
Синтаксис
HRESULT RetrieveUnifiedDevicePropertyStore(
[in] PWDF_PROPERTY_STORE_ROOT RootSpecifier,
[out] IWDFUnifiedPropertyStore **PropertyStore
);
Параметры
[in] RootSpecifier
Адрес структуры WDF_PROPERTY_STORE_ROOT , выделенной драйвером. Драйвер заполняет эту структуру, чтобы определить унифицированное хранилище свойств, которое извлекает RetrieveUnifiedDevicePropertyStore .
[out] PropertyStore
Адрес расположения, которое получает указатель на интерфейс IWDFUnifiedPropertyStore .
Возвращаемое значение
RetrieveUnifiedDevicePropertyStore возвращает S_OK, если операция выполнена успешно. В противном случае метод может вернуть одно из следующих значений.
Код возврата | Описание |
---|---|
|
Вызывающий объект предоставил недопустимый входной аргумент. |
|
Сбой при попытке выделения памяти. |
Этот метод может возвращать одно из других значений, содержащихся в Winerror.h .
Комментарии
Драйвер может вызвать RetrieveUnifiedDevicePropertyStore , чтобы получить доступ к аппаратному ключу текущего устройства или ключу интерфейса устройства, который поддерживает устройство.
Элемент RootClassструктуры WDF_PROPERTY_STORE_ROOT , на который указывает RootSpecifier , должен иметь значение WdfPropertyStoreRootClassHardwareKey или WdfPropertyStoreRootClassDeviceInterfaceKey.
Кроме того, если для параметра RootClass задано значение WdfPropertyStoreRootClassHardwareKey, то элемент Qualifier.HardwareKey.ServiceNameобъекта RootSpecifier должен иметь значение NULL.
Дополнительные сведения о доступе к реестру см. в разделе Использование реестра в драйверах на основе UMDF.
Примеры
В следующем примере кода извлекается единый интерфейс хранилища свойств.
HRESULT
GetDevicePropertyStore(
_In_ IWDFDevice * FxDevice,
_Out_ IWDFUnifiedPropertyStore ** ppUnifiedPropertyStore
)
{
HRESULT hr;
IWDFUnifiedPropertyStore * pUnifiedPropertyStore = NULL;
WDF_PROPERTY_STORE_ROOT RootSpecifier;
IWDFUnifiedPropertyStoreFactory * pUnifiedPropertyStoreFactory = NULL;
HRESULT hrQI = FxDevice->QueryInterface(
IID_PPV_ARGS(&pUnifiedPropertyStoreFactory)
);
WUDF_TEST_DRIVER_ASSERT(SUCCEEDED(hrQI));
RootSpecifier.LengthCb = sizeof(RootSpecifier);
RootSpecifier.RootClass = WdfPropertyStoreRootClassHardwareKey;
RootSpecifier.Qualifier.HardwareKey.ServiceName = NULL;
hr = pUnifiedPropertyStoreFactory->RetrieveUnifiedDevicePropertyStore(
&RootSpecifier,
&pUnifiedPropertyStore
);
if (FAILED(hr))
{
TraceEvents(
TRACE_LEVEL_ERROR,
TEST_TRACE_DEVICE,
"Failed to retrieve unified property store for device: ”
“hr = %!HRESULT!",
hr
);
goto exit;
}
*ppUnifiedPropertyStore = pUnifiedPropertyStore;
exit:
SAFE_RELEASE(pUnifiedPropertyStoreFactory);
return hr;
}
Требования
Требование | Значение |
---|---|
Дата окончания поддержки | Недоступно в UMDF 2.0 и более поздних версиях. |
Целевая платформа | Персональный компьютер |
Минимальная версия UMDF | 1.11 |
Верхняя часть | wudfddi.h (включая Wudfddi.h) |
DLL | WUDFx.dll |