Método IWDFUnifiedPropertyStoreFactory::RetrieveUnifiedDevicePropertyStore (wudfddi.h)
[Advertencia: UMDF 2 es la versión más reciente de UMDF y sustituye a UMDF 1. Todos los controladores UMDF nuevos deben escribirse con UMDF 2. No se agregan nuevas características a UMDF 1 y hay compatibilidad limitada con UMDF 1 en versiones más recientes de Windows 10. Los controladores universales de Windows deben usar UMDF 2. Para obtener más información, consulta Introducción con UMDF.
El método RetrieveUnifiedDevicePropertyStore recupera una interfaz de almacén de propiedades unificada.
Sintaxis
HRESULT RetrieveUnifiedDevicePropertyStore(
[in] PWDF_PROPERTY_STORE_ROOT RootSpecifier,
[out] IWDFUnifiedPropertyStore **PropertyStore
);
Parámetros
[in] RootSpecifier
Dirección de una estructura de WDF_PROPERTY_STORE_ROOT asignada por el controlador. El controlador rellena esta estructura para identificar el almacén de propiedades unificado que retrieveUnifiedDevicePropertyStore recupera.
[out] PropertyStore
Dirección de una ubicación que recibe un puntero a una interfaz IWDFUnifiedPropertyStore .
Valor devuelto
RetrieveUnifiedDevicePropertyStore devuelve S_OK si la operación se realiza correctamente. De lo contrario, el método podría devolver uno de los valores siguientes.
Código devuelto | Descripción |
---|---|
|
El autor de la llamada proporcionó un argumento de entrada no válido. |
|
Error al tratar de asignar memoria. |
Este método podría devolver uno de los otros valores que contiene Winerror.h .
Comentarios
El controlador puede llamar a RetrieveUnifiedDevicePropertyStore para obtener acceso a la clave de hardware de un dispositivo actual o a una clave de interfaz de dispositivo que admita el dispositivo.
El miembro RootClass de la estructura WDF_PROPERTY_STORE_ROOT a la que apunta RootSpecifier debe establecerse en WdfPropertyStoreRootClassHardwareKey o WdfPropertyStoreRootClassDeviceInterfaceKey.
Además, si RootClass está establecido en WdfPropertyStoreRootClassHardwareKey, el miembro Qualifier.HardwareKey.ServiceName de RootSpecifier debe ser NULL.
Para obtener más información sobre el acceso al registro, consulte Uso del Registro en controladores basados en UMDF.
Ejemplos
En el ejemplo de código siguiente se recupera una interfaz de almacén de propiedades unificada.
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;
}
Requisitos
Requisito | Value |
---|---|
Finalización del soporte técnico | No disponible en UMDF 2.0 y versiones posteriores. |
Plataforma de destino | Escritorio |
Versión mínima de UMDF | 1.11 |
Encabezado | wudfddi.h (incluya Wudfddi.h) |
Archivo DLL | WUDFx.dll |