Partager via


IoGetDevicePropertyData, fonction (wdm.h)

La routine IoGetDevicePropertyData récupère le paramètre actuel d’une propriété d’appareil.

Syntaxe

NTSTATUS IoGetDevicePropertyData(
  [in]  PDEVICE_OBJECT   Pdo,
  [in]  const DEVPROPKEY *PropertyKey,
  [in]  LCID             Lcid,
        ULONG            Flags,
  [in]  ULONG            Size,
  [out] PVOID            Data,
  [out] PULONG           RequiredSize,
  [out] PDEVPROPTYPE     Type
);

Paramètres

[in] Pdo

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

[in] PropertyKey

Pointeur vers une structure DEVPROPKEY qui spécifie la clé de propriété de l’appareil.

[in] Lcid

Identificateur de paramètres régionaux. Définissez ce paramètre sur une valeur LCID spécifique au langage ou sur LOCALE_NEUTRAL. La LOCALE_NEUTRAL LCID spécifie que la propriété est neutre en langage (c’est-à-dire, pas spécifique à une 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.

Flags

Réservé à l’utilisation du système. Les pilotes doivent définir cette valeur sur 0.

[in] Size

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

[out] Data

Pointeur vers les données de propriété de l’appareil.

[out] RequiredSize

Pointeur vers un ULONG pour recevoir la taille des informations de propriété retournées à Data. Si IoGetDevicePropertyData retourne STATUS_BUFFER_TOO_SMALL, l’appelant peut utiliser cette valeur pour allouer une mémoire tampon de la taille correcte.

[out] Type

Pointeur vers une valeur DEVPROPTYPE. Si IoGetDevicePropertyData s’exécute correctement, la routine utilise Type pour fournir le type de données retourné dans la mémoire tampon Données.

Valeur de retour

IoGetDevicePropertyData retourne une valeur NTSTATUS. Cette routine peut retourner l’une des valeurs suivantes :

Retourner le code Description
STATUS_SUCCESS
L’opération a réussi. La mémoire tampon de données contient les données récupérées. **Type* contient le type des données récupérées.
STATUS_BUFFER_TOO_SMALL
La mémoire tampon données est trop petite. **RequiredSize* contient la longueur de la mémoire tampon requise.
STATUS_OBJECT_NAME_NOT_FOUND
La propriété d’appareil spécifiée n’a pas été trouvée.

Remarques

Les pilotes en mode noyau utilisent la routine IoGetDevicePropertyData pour récupérer les propriétés d’appareil définies dans le cadre du modèle de propriété d’appareil unifié.

Pour afficher 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 peuvent utiliser la routine IoSetDevicePropertyData pour modifier une propriété d’appareil.

Les appelants de IoGetDevicePropertyData doivent être en cours d’exécution à l'<IRQL = APC_LEVEL dans le contexte d’un thread système.

Exigences

Exigence Valeur
client minimum pris en charge Disponible à partir de Windows Vista.
plateforme cible Universel
d’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

IoSetDevicePropertyData