Partager via


Méthode IWDFUnifiedPropertyStore ::SetPropertyData (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 SetPropertyData modifie le paramètre actuel d’une propriété d’appareil.

Syntaxe

HRESULT SetPropertyData(
  [in]           const DEVPROPKEY *PropertyKey,
  [in]           LCID             Lcid,
  [in]           ULONG            Flags,
  [in]           DEVPROPTYPE      PropertyType,
  [in]           ULONG            PropertyDataSize,
  [in, optional] PVOID            PropertyData
);

Paramètres

[in] PropertyKey

Pointeur vers une structure DEVPROPKEY qui spécifie la clé de propriété de périphérique.

[in] Lcid

Spécifie un identificateur de paramètres régionaux. Définissez ce paramètre sur une valeur LCID spécifique à la langue ou sur LOCALE_NEUTRAL. L’LOCALE_NEUTRAL LCID spécifie que la propriété est indépendante de la langue (c’est-à-dire qu’elle n’est spécifique à aucune langue). Ne définissez pas ce paramètre sur LOCALE_SYSTEM_DEFAULT ou LOCALE_USER_DEFAULT. Pour plus d’informations sur les valeurs LCID spécifiques au langage, consultez Structure LCID.

[in] Flags

Réservé. Les pilotes doivent définir cette valeur sur 0.

[in] PropertyType

Pointeur vers une valeur DEVPROPTYPE qui spécifie le type des données fournies dans la mémoire tampon PropertyData .

[in] PropertyDataSize

Taille, en octets, de la mémoire tampon vers laquelle PropertyData pointe.

[in, optional] PropertyData

Pointeur vers les données de propriété de l’appareil. Définissez ce paramètre sur NULL pour supprimer la propriété spécifiée.

Valeur retournée

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

Code de retour Description
E_OUTOFMEMORY
La tentative d’allocation de mémoire de l’infrastructure a échoué.
HRESULT_FROM_WIN32 (ERROR_INVALID_PARAMETER)
Si le pilote spécifie WdfPropertyStoreRootClassDeviceInterfaceKey, l’interface demandée doit être celle que le pilote UMDF a précédemment inscrite.
HRESULT_FROM_WIN32 (STATUS_NOT_SUPPORTED)
Le pilote peut modifier les données de propriété de l’interface de périphérique uniquement en commençant par Windows 8.
 

Cette méthode peut retourner une valeur de type HRESULT correspondant à l’une des autres valeurs que Winerror.h contient.

Remarques

Les pilotes basés sur l’infrastructure utilisent la méthode SetPropertyData pour modifier les propriétés d’appareil définies dans le cadre du modèle de propriété d’appareil unifié.

En particulier, vous pouvez utiliser cette méthode pour modifier la clé matérielle d’un appareil ou une instance d’une classe d’interface d’appareil. Lorsque vous appelez IWDFUnifiedPropertyStoreFactory ::RetrieveUnifiedDevicePropertyStore, définissez le membre RootClass du paramètre RootSpecifier sur WdfPropertyStoreRootClassHardwareKey ou WdfPropertyStoreRootClassDeviceInterfaceKey.

Si vous spécifiez WdfPropertyStoreRootClassHardwareKey, lorsque vous appelez SetPropertyData, vous devez fournir une valeur DEVPROPKEY personnalisée dans le paramètre PropertyKey , et non une clé définie par PnP. La valeur doit avoir été définie précédemment en appelant SetPropertyData, une fonction de propriété d’appareil SetupDI ou à l’aide de la directive INF AddProperty.

Si le pilote spécifie WdfPropertyStoreRootClassDeviceInterfaceKey, l’interface demandée doit être celle que le pilote UMDF a précédemment inscrite au moment de l’exécution.

Si le pilote inscrit une interface dans son fichier INF, il doit également définir les propriétés associées dans l’inf.

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

Exemples

HRESULT
SetFriendlyName(
    _In_ IWDFUnifiedPropertyStore * pUnifiedPropertyStore
    )
{
    HRESULT hr = S_OK;
    WCHAR friendlyName[] = L"UMDF OSR USB Fx2 Test Device";

    hr = pUnifiedPropertyStore->SetPropertyData(
            &DEVPKEY_Device_FriendlyName,
            0, //Lcid
            0, //Flags
            DEVPROP_TYPE_STRING, //Type
            sizeof(friendlyName),
            friendlyName
            );

    if (FAILED(hr))
    {
        TraceEvents(
            TRACE_LEVEL_ERROR,
            TEST_TRACE_DEVICE,             
            "SetPropertyData failed: hr = %!HRESULT!",
            hr
            );
        goto exit;
    }

exit:
    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
DLL WUDFx.dll

Voir aussi

GetPropertyData

IWDFUnifiedPropertyStore

IWDFUnifiedPropertyStoreFactory

RetrieveUnifiedDevicePropertyStore

WDF_PROPERTY_STORE_ROOT

WDF_PROPERTY_STORE_ROOT_CLASS