Partager via


Fonction WdfFdoInitQueryPropertyEx (wdffdo.h)

[S’applique à KMDF et UMDF]

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

Syntaxe

NTSTATUS WdfFdoInitQueryPropertyEx(
  [in]  PWDFDEVICE_INIT           DeviceInit,
  [in]  PWDF_DEVICE_PROPERTY_DATA DeviceProperty,
  [in]  ULONG                     BufferLength,
  [out] PVOID                     PropertyBuffer,
  [out] PULONG                    ResultLength,
  [out] PDEVPROPTYPE              Type
);

Paramètres

[in] DeviceInit

Pointeur vers une structure WDFDEVICE_INIT que le pilote a obtenu à partir de sa fonction de rappel EvtDriverDeviceAdd .

[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] ResultLength

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 qui, en retour, 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, WdfFdoInitQueryPropertyEx retourne STATUS_SUCCESS. Les valeurs de retour supplémentaires sont les suivantes :

Code de retour 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.

Un bogue case activée se produit si le pilote fournit un handle d’objet non valide.

Remarques

Avant de recevoir les données de propriété d’appareil, les pilotes appellent généralement la méthode WdfFdoInitQueryPropertyEx juste 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 WdfFdoInitQueryPropertyEx . Par conséquent, les pilotes doivent appeler WdfFdoInitQueryPropertyEx à l’intérieur d’une boucle qui s’exécute jusqu’à ce que la status de retour ne soit pas STATUS_BUFFER_TOO_SMALL.

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

Le pilote peut appeler WdfFdoInitQueryPropertyEx uniquement avant d’appeler WdfDeviceCreate. Pour plus d’informations sur l’appel de WdfDeviceCreate, consultez Création d’un objet d’appareil framework.

Après avoir appelé WdfDeviceCreate, un pilote peut obtenir des informations sur la propriété de l’appareil en appelant WdfDeviceQueryPropertyEx.

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 wdffdo.h (inclure Wdf.h)
Bibliothèque Wdf01000.sys (KMDF) ; WUDFx02000.dll (UMDF)
IRQL PASSIVE_LEVEL

Voir aussi

WdfFdoInitQueryProperty