Partager via


Méthode IWDFUnifiedPropertyStoreFactory ::RetrieveUnifiedDevicePropertyStore (wudfddi.h)

[Avertissement : UMDF 2 est la dernière version d’UMDF et remplace UMDF 1. Tous les nouveaux pilotes UMDF doivent être écrits à l’aide d’UMDF 2. Aucune nouvelle fonctionnalité n’est ajoutée à UMDF 1 et la prise en charge d’UMDF 1 est limitée sur les versions plus récentes de Windows 10. Les pilotes Windows universels doivent utiliser UMDF 2. Pour plus d’informations, consultez Prise en main avec UMDF.]

La méthode RetrieveUnifiedDevicePropertyStore récupère une interface de magasin de propriétés unifiée.

Syntaxe

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

Paramètres

[in] RootSpecifier

Adresse d’une structure de WDF_PROPERTY_STORE_ROOT allouée par le pilote. Le pilote remplit cette structure pour identifier le magasin de propriétés unifié que RetrieveUnifiedDevicePropertyStore récupère.

[out] PropertyStore

Adresse d’un emplacement qui reçoit un pointeur vers une interface IWDFUnifiedPropertyStore .

Valeur retournée

RetrieveUnifiedDevicePropertyStore retourne S_OK si l’opération réussit. Sinon, la méthode peut retourner l’une des valeurs suivantes.

Code de retour Description
E_INVALIDARG
L’appelant a fourni un argument d’entrée non valide.
E_OUTOFMEMORY
Une tentative d’allocation de mémoire a échoué.
 

Cette méthode peut retourner l’une des autres valeurs que Winerror.h contient.

Remarques

Votre pilote peut appeler RetrieveUnifiedDevicePropertyStore pour obtenir l’accès à la clé matérielle d’un appareil actuel ou à une clé d’interface d’appareil prise en charge par l’appareil.

Le membre RootClass de la structure WDF_PROPERTY_STORE_ROOT pointée par RootSpecifier doit être défini sur WdfPropertyStoreRootClassHardwareKey ou WdfPropertyStoreRootClassClassDeviceInterfaceKey.

En outre, si RootClass est défini sur WdfPropertyStoreRootClassHardwareKey, le membre Qualifier.HardwareKey.ServiceName de RootSpecifier doit avoir la valeur NULL.

Pour plus d’informations sur l’accès au Registre, consultez Utilisation du Registre dans les pilotes basés sur UMDF.

Exemples

L’exemple de code suivant récupère une interface de magasin de propriétés unifiée.

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

Configuration requise

Condition requise Valeur
Fin de la prise en charge Non disponible dans UMDF 2.0 et versions ultérieures.
Plateforme cible Desktop (Expérience utilisateur)
Version UMDF minimale 1.11
En-tête wudfddi.h (inclure Wudfddi.h)
DLL WUDFx.dll

Voir aussi

IWDFUnifiedPropertyStore

IWDFUnifiedPropertyStoreFactory