Condividi tramite


Metodo IWDFUnifiedPropertyStoreFactory::RetrieveUnifiedDevicePropertyStore (wudfddi.h)

[Avviso: UMDF 2 è la versione più recente di UMDF e sostituisce UMDF 1. Tutti i nuovi driver UMDF devono essere scritti usando UMDF 2. Non vengono aggiunte nuove funzionalità a UMDF 1 ed è disponibile un supporto limitato per UMDF 1 nelle versioni più recenti di Windows 10. I driver di Windows universali devono usare UMDF 2. Per altre info, vedi Introduzione con UMDF.]

Il metodo RetrieveUnifiedDevicePropertyStore recupera un'interfaccia dell'archivio proprietà unificata.

Sintassi

HRESULT RetrieveUnifiedDevicePropertyStore(
  [in]  PWDF_PROPERTY_STORE_ROOT RootSpecifier,
  [out] IWDFUnifiedPropertyStore **PropertyStore
);

Parametri

[in] RootSpecifier

Indirizzo di una struttura WDF_PROPERTY_STORE_ROOT allocata dal driver. Il driver compila questa struttura per identificare l'archivio proprietà unificato recuperato da RetrieveUnifiedDevicePropertyStore .

[out] PropertyStore

Indirizzo di una posizione che riceve un puntatore a un'interfaccia IWDFUnifiedPropertyStore .

Valore restituito

RetrieveUnifiedDevicePropertyStore restituisce S_OK se l'operazione ha esito positivo. In caso contrario, il metodo potrebbe restituire uno dei valori seguenti.

Codice restituito Descrizione
E_INVALIDARG
Il chiamante ha fornito un argomento di input non valido.
E_OUTOFMEMORY
Tentativo di allocazione della memoria non riuscito.
 

Questo metodo potrebbe restituire uno degli altri valori contenuti da Winerror.h .

Commenti

Il driver può chiamare RetrieveUnifiedDevicePropertyStore per ottenere l'accesso alla chiave hardware di un dispositivo corrente o a una chiave dell'interfaccia del dispositivo supportata dal dispositivo.

Il membro RootClass della struttura WDF_PROPERTY_STORE_ROOT a cui punta RootSpecifier deve essere impostato su WdfPropertyStoreRootClassHardwareKey o WdfPropertyStoreRootClassDeviceInterfaceKey.

Inoltre, se RootClass è impostato su WdfPropertyStoreRootClassHardwareKey, il membro Qualifier.HardwareKey.ServiceName di RootSpecifier deve essere NULL.

Per altre informazioni sull'accesso al Registro di sistema, vedere Uso del Registro di sistema nei driver basati su UMDF.

Esempio

Nell'esempio di codice seguente viene recuperata un'interfaccia dell'archivio proprietà unificata.

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;
}

Requisiti

Requisito Valore
Fine del supporto Non disponibile in UMDF 2.0 e versioni successive.
Piattaforma di destinazione Desktop
Versione UMDF minima 1.11
Intestazione wudfddi.h (include Wudfddi.h)
DLL WUDFx.dll

Vedi anche

IWDFUnifiedPropertyStore

IWDFUnifiedPropertyStoreFactory