Partager via


Fonction IoSetDevicePropertyData (wdm.h)

La routine IoSetDevicePropertyData modifie le paramètre actuel d’une propriété d’appareil.

Syntaxe

NTSTATUS IoSetDevicePropertyData(
  [in]           PDEVICE_OBJECT   Pdo,
  [in]           const DEVPROPKEY *PropertyKey,
  [in]           LCID             Lcid,
  [in]           ULONG            Flags,
  [in]           DEVPROPTYPE      Type,
  [in]           ULONG            Size,
  [in, optional] PVOID            Data
);

Paramètres

[in] Pdo

Pointeur vers l’objet d’appareil physique (PDO) pour l’appareil interrogé.

[in] PropertyKey

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

[in] Lcid

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

Définissez ce paramètre sur PLUGPLAY_PROPERTY_PERSISTENT si la valeur de propriété définie par cette routine doit persister entre les redémarrages de l’ordinateur. Sinon, définissez Indicateurs sur zéro.

Windows 8 et les systèmes d’exploitation Windows Server 2012 et ultérieur traitent les indicateurs comme si PLUGPLAY_PROPERTY_PERSISTENT était toujours passé.

[in] Type

Valeur DEVPROPTYPE qui spécifie le type des données fournies dans la mémoire tampon de données .

[in] Size

Taille, en octets, de la mémoire tampon vers laquelle les données pointent.

[in, optional] Data

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. Si Data n’a pas la valeur NULL, la routine stocke une copie interne de la valeur de propriété. La mémoire tampon pointée par Data n’a pas besoin de rester valide après le retour de l’appel.

Valeur retournée

IoSetDevicePropertyData retourne STATUS_SUCCESS si l’appel a réussi, ou le code NTSTATUS approprié en cas d’échec.

Remarques

Pour voir les types de propriétés disponibles pour une utilisation par cette routine, consultez DEVPROP_TYPE_BYTE et les pages adjacentes pour DEVPROP_TYPE_*.

Les pilotes en mode noyau utilisent la routine IoSetDevicePropertyData pour modifier les propriétés d’appareil définies dans le cadre du modèle de propriété d’appareil unifié. Pour plus d’informations sur les propriétés de l’appareil, consultez Propriétés de l’appareil.

Pour supprimer une propriété pour un paramètre régional spécifique, transmettez une valeur LCID spécifique à la langue dans Lcid et NULL dans Data.

Pour supprimer une propriété pour tous les paramètres régionaux, passez LOCALE_NEUTRAL en Lcid et NULL dans Data.

Pour modifier une propriété pour un paramètre régional spécifique, transmettez une valeur LCID spécifique à la langue en Lcid et une valeur non NULL dans Data.

Pour modifier une propriété pour tous les paramètres régionaux, passez LOCALE_NEUTRAL en Lcid et non NULL dans Data.

À partir de Windows 8 et Windows Server 2012 passage de LOCALE_NEUTRAL dans Lcid est traité comme n’importe quel autre paramètre régional.

Les pilotes peuvent utiliser la routine IoGetDevicePropertyData pour obtenir la valeur actuelle d’une propriété d’appareil.

Les appelants d’IoSetDeviceProperty doivent s’exécuter sur IRQL <= APC_LEVEL dans le contexte d’un thread système.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible à partir de Windows Vista.
Plateforme cible Universal
En-tête wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL
Règles de conformité DDI HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

Voir aussi

DEVPROPKEY

DEVPROPTYPE

IoGetDevicePropertyData