WdfFdoQueryForInterface, fonction (wdffdo.h)
[S’applique uniquement à KMDF]
La méthode WdfFdoQueryForInterface obtient l’accès à l’interface identifiée par le GUID d’un autre pilote.
Syntaxe
NTSTATUS WdfFdoQueryForInterface(
[in] WDFDEVICE Fdo,
[in] LPCGUID InterfaceType,
[out] PINTERFACE Interface,
[in] USHORT Size,
[in] USHORT Version,
[in, optional] PVOID InterfaceSpecificData
);
Paramètres
[in] Fdo
Handle d’un objet d’appareil framework.
[in] InterfaceType
Pointeur vers un GUID qui identifie l’interface.
[out] Interface
Pointeur vers une structure allouée par le pilote qui reçoit l’interface demandée. Cette structure est définie par le pilote qui exporte l’interface demandée et doit commencer par une structure INTERFACE .
[in] Size
Taille, en octets, de la structure allouée par le pilote qui représente l’interface demandée.
[in] Version
Numéro de version de l’interface demandée. Le format de cette valeur est défini par le pilote qui exporte l’interface demandée.
[in, optional] InterfaceSpecificData
Informations supplémentaires spécifiques à l’interface. Ce paramètre est facultatif et peut être NULL.
Valeur retournée
Si l’opération réussit, la méthode retourne STATUS_SUCCESS. Les valeurs de retour supplémentaires sont les suivantes :
Code de retour | Description |
---|---|
|
L’objet d’appareil n’est pas valide ou si le paramètre Device, InterfaceType ou Interface a la valeur NULL. |
|
L’infrastructure n’a pas pu allouer une requête à envoyer à un autre pilote. |
La méthode peut également retourner d’autres valeurs NTSTATUS.
Un bogue système case activée se produit si le pilote fournit un handle d’objet non valide.
Remarques
Votre pilote peut appeler WdfFdoQueryForInterface pour obtenir l’accès à une interface définie par le pilote qui a été créée par un pilote qui se trouve dans la même pile de pilotes que celle dans laquelle se trouve votre pilote. Pour accéder à une interface définie par le pilote qui a été créée par un pilote qui se trouve dans une autre pile de pilotes, votre pilote doit appeler WdfIoTargetQueryForInterface.
Les pilotes basés sur l’infrastructure définissent des interfaces en appelant WdfDeviceAddQueryInterface.
Pour plus d’informations sur WdfFdoQueryForInterface, consultez Utilisation d’interfaces Driver-Defined.
Exemples
L’exemple de code suivant provient de l’exemple de pilote de fonction Grille-pain . Cet exemple obtient l’accès à une interface définie par l’exemple de pilote de bus de grille-pain.
status = WdfFdoQueryForInterface(
Device,
&GUID_TOASTER_INTERFACE_STANDARD,
(PINTERFACE) &fdoData->BusInterface, // Object context space
sizeof(TOASTER_INTERFACE_STANDARD),
1,
NULL
);
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Universal |
Version KMDF minimale | 1.0 |
En-tête | wdffdo.h (inclure Wdf.h) |
Bibliothèque | Wdf01000.sys (consultez Gestion de version de la bibliothèque d’infrastructure.) |
IRQL | PASSIVE_LEVEL |
Règles de conformité DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |