Compartir a través de


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
E_INVALIDARG
El autor de la llamada proporcionó un argumento de entrada no válido.
E_OUTOFMEMORY
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

Consulte también

IWDFUnifiedPropertyStore

IWDFUnifiedPropertyStoreFactory