Fonction IoGetDevicePropertyData (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) pour 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. L’LOCALE_NEUTRAL LCID spécifie que la propriété n’est pas linguistique (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 à la langue, consultez Structure LCID.
Flags
Réservé pour le système. Les pilotes doivent définir cette valeur sur 0.
[in] Size
Taille, en octets, de la mémoire tampon vers laquelle les données pointent.
[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 dans Data. Si IoGetDevicePropertyData retourne STATUS_BUFFER_TOO_SMALL, l’appelant peut utiliser cette valeur pour allouer une mémoire tampon de la taille appropriée.
[out] Type
Pointeur vers une valeur DEVPROPTYPE . Si IoGetDevicePropertyData se termine correctement, la routine utilise Type pour fournir le type de données retournées dans la mémoire tampon de données .
Valeur retournée
IoGetDevicePropertyData retourne une valeur NTSTATUS. Cette routine peut retourner l’une des valeurs suivantes :
Code de retour | Description |
---|---|
|
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. |
|
La mémoire tampon de données est trop petite. **RequiredSize* contient la longueur de mémoire tampon requise. |
|
La propriété d’appareil spécifiée est introuvable. |
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 voir les types de propriétés disponibles pour une utilisation par cette routine, consultez DEVPROP_TYPE_BYTE et pages adjacentes pour DEVPROP_TYPE_*
.
Les pilotes peuvent utiliser la routine IoSetDevicePropertyData pour modifier une propriété d’appareil.
Les appelants d’IoGetDevicePropertyData doivent s’exécuter à 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 (inclure 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) |