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 |
---|---|
|
La tentative d’allocation de mémoire de l’infrastructure a échoué. |
|
Si le pilote spécifie WdfPropertyStoreRootClassDeviceInterfaceKey, l’interface demandée doit être celle que le pilote UMDF a précédemment inscrite. |
|
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
IWDFUnifiedPropertyStoreFactory