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) |