Fonction WdfDeviceQueryPropertyEx (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 d’un objet d’appareil framework.
[in] DeviceProperty
Pointeur vers une structure de WDF_DEVICE_PROPERTY_DATA qui identifie la propriété d’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 à l’appelant qui reçoit les informations demandées. Le pointeur peut avoir la valeur NULL si le paramètre BufferLength est égal à zéro.
[out] RequiredSize
Emplacement fourni par l’appelant qui, au retour, contient la taille, en octets, des informations que la méthode stockée 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, ce paramètre contient la valeur de type de propriété des données de propriété stockées dans PropertyBuffer.
Valeur retournée
Si l’opération réussit, WdfDeviceQueryPropertyEx retourne STATUS_SUCCESS. Les valeurs de retour supplémentaires sont les suivantes :
Code de retour | Description |
---|---|
|
La mémoire tampon fournie est trop petite pour recevoir les informations. |
|
La valeur DeviceProperty spécifiée n’est pas valide. |
La méthode peut retourner d’autres valeurs NTSTATUS.
Un bogue case activée 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 via le 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 les données de propriété de l’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 À nouveau WdfDeviceQueryPropertyEx . Par conséquent, les pilotes doivent appeler WdfDeviceQueryPropertyEx à l’intérieur d’une boucle qui s’exécute jusqu’à ce que le status 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 ne doit appeler WdfDeviceQueryPropertyEx qu’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é.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Universal |
Version KMDF minimale | 1.13 |
Version UMDF minimale | 2.0 |
En-tête | wdfdevice.h (include Wdf.h) |
Bibliothèque | Wdf01000.sys (KMDF) ; WUDFx02000.dll (UMDF) |
IRQL | APC_LEVEL |