Freigeben über


IWDFUnifiedPropertyStoreFactory::RetrieveUnifiedDevicePropertyStore-Methode (wudfddi.h)

[Warnung: UMDF 2 ist die neueste Version von UMDF und ersetzt UMDF 1. Alle neuen UMDF-Treiber sollten mit UMDF 2 geschrieben werden. Es werden keine neuen Features zu UMDF 1 hinzugefügt, und es gibt eingeschränkte Unterstützung für UMDF 1 für neuere Versionen von Windows 10. Universelle Windows-Treiber müssen UMDF 2 verwenden. Weitere Informationen finden Sie unter Erste Schritte mit UMDF-.]

Die RetrieveUnifiedDevicePropertyStore--Methode ruft eine einheitliche Eigenschaftenspeicherschnittstelle ab.

Syntax

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

Parameter

[in] RootSpecifier

Die Adresse einer vom Treiber zugewiesenen WDF_PROPERTY_STORE_ROOT Struktur. Der Treiber füllt diese Struktur aus, um den einheitlichen Eigenschaftenspeicher zu identifizieren, der abgerufen RetrieveUnifiedDevicePropertyStore abruft.

[out] PropertyStore

Die Adresse eines Speicherorts, der einen Zeiger auf eine IWDFUnifiedPropertyStore--Schnittstelle empfängt.

Rückgabewert

RetrieveUnifiedDevicePropertyStore gibt S_OK zurück, wenn der Vorgang erfolgreich ist. Andernfalls gibt die Methode möglicherweise einen der folgenden Werte zurück.

Rückgabecode Beschreibung
E_INVALIDARG
Der Aufrufer hat ein ungültiges Eingabeargument bereitgestellt.
E_OUTOFMEMORY
Fehler beim Versuch, Arbeitsspeicher zuzuweisen.
 

Diese Methode gibt möglicherweise einen der anderen Werte zurück, die winerror.h enthält.

Bemerkungen

Ihr Treiber kann RetrieveUnifiedDevicePropertyStore- aufrufen, um Zugriff auf den Hardwareschlüssel eines aktuellen Geräts oder einen vom Gerät unterstützten Geräteschnittstellenschlüssel zu erhalten.

Der RootClass Member der WDF_PROPERTY_STORE_ROOT Struktur, auf die RootSpecifier verweist, muss auf WdfPropertyStoreRootClassHardwareKey oder WdfPropertyStoreRootClassDeviceInterfaceKeyfestgelegt werden.

Wenn RootClass- auf WdfPropertyStoreRootClassHardwareKeyfestgelegt ist, muss der Qualifier.HardwareKey.ServiceName Member RootSpecifier null sein.

Weitere Informationen zum Zugriff auf die Registrierung finden Sie unter Verwenden der Registrierung in UMDF-basierten Treibern.

Beispiele

Im folgenden Codebeispiel wird eine einheitliche Eigenschaftenspeicherschnittstelle abgerufen.

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

Anforderungen

Anforderung Wert
Ende des Supports In UMDF 2.0 und höher nicht verfügbar.
Zielplattform- Desktop
Mindest-UMDF-Version 1.11
Header- wudfddi.h (include Wudfddi.h)
DLL- WUDFx.dll

Siehe auch

IWDFUnifiedPropertyStore-

IWDFUnifiedPropertyStoreFactory-