Partager via


WdfDeviceQueryPropertyEx, fonction (wdfdevice.h)

[S’applique à KMDF et UMDF]

La méthode WdfDeviceQueryPropertyEx récupère une propriété d’appareil spécifiée.

Syntaxe

NTSTATUS WdfDeviceQueryPropertyEx(
  [in]  WDFDEVICE                 Device,
  [in]  PWDF_DEVICE_PROPERTY_DATA DeviceProperty,
  [in]  ULONG                     BufferLength,
  [out] PVOID                     PropertyBuffer,
  [out] PULONG                    RequiredSize,
  [out] PDEVPROPTYPE              Type
);

Paramètres

[in] Device

Handle vers un objet d’appareil framework.

[in] DeviceProperty

Pointeur vers une structure WDF_DEVICE_PROPERTY_DATA qui identifie la propriété de l’appareil à récupérer.

[in] BufferLength

Taille, en octets, de la mémoire tampon pointée par PropertyBuffer.

[out] PropertyBuffer

Pointeur fourni par l’appelant vers une mémoire tampon allouée par l’appelant qui reçoit les informations demandées. Le pointeur peut être NULL si le paramètre BufferLength est égal à zéro.

[out] RequiredSize

Emplacement fourni par l’appelant qui, à son retour, contient la taille, en octets, des informations stockées dans PropertyBuffer. Si la valeur de retour de la fonction est STATUS_BUFFER_TOO_SMALL, cet emplacement reçoit la taille de mémoire tampon requise.

[out] Type

Pointeur vers une variable DEVPROPTYPE. Si la méthode réussit, lors du retour de ce paramètre contient la valeur de type de propriété des données de propriété stockées dans PropertyBuffer.

Valeur de retour

Si l’opération réussit, WdfDeviceQueryPropertyEx retourne STATUS_SUCCESS. Les valeurs de retour supplémentaires sont les suivantes :

Retourner le code Description
STATUS_BUFFER_TOO_SMALL
La mémoire tampon fournie est trop petite pour recevoir les informations.
STATUS_INVALID_PARAMETER
La valeur DeviceProperty spécifiée n’est pas valide.
 

La méthode peut retourner d’autres valeurs NTSTATUS .

Une vérification de bogue se produit si le pilote fournit un handle d’objet non valide.

Remarques

Vous pouvez utiliser WdfDeviceQueryPropertyEx pour récupérer toute propriété exposée par le biais du modèle de propriété unifié, tandis que la méthode WdfDeviceQueryProperty autorise uniquement l’interrogation d’un sous-ensemble du modèle de propriété unifié.

Avant de recevoir des données de propriété d’appareil, les pilotes appellent généralement la méthode WdfDeviceQueryPropertyEx simplement pour obtenir la taille de mémoire tampon requise. Pour certaines propriétés, la taille des données peut changer entre le moment où la taille requise est retournée et lorsque le pilote appelle WdfDeviceQueryPropertyEx à nouveau. Par conséquent, les pilotes doivent appeler WdfDeviceQueryPropertyEx à l’intérieur d’une boucle qui s’exécute jusqu’à ce que l’état de retour ne soit pas STATUS_BUFFER_TOO_SMALL.

Il est préférable d’utiliser WdfDeviceQueryPropertyEx uniquement si la taille de mémoire tampon requise est connue et inchangée, car dans ce cas, le pilote doit appeler WdfDeviceQueryPropertyEx une seule fois. Si la taille de mémoire tampon requise est inconnue ou varie, le pilote doit appeler WdfDeviceAllocAndQueryPropertyEx.

Pour plus d’informations sur les méthodes associées, consultez Accès au modèle de propriété d’appareil unifié.

Exigences

Exigence Valeur
plateforme cible Universel
version minimale de KMDF 1.13
version minimale de UMDF 2.0
d’en-tête wdfdevice.h (include Wdf.h)
bibliothèque Wdf01000.sys (KMDF) ; WUDFx02000.dll (UMDF)
IRQL APC_LEVEL

Voir aussi

WdfDeviceQueryInterfaceProperty

WdfDeviceQueryProperty