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
STATUS_INVALID_PARAMETER
L’objet d’appareil n’est pas valide ou si le paramètre Device, InterfaceType ou Interface a la valeur NULL.
STATUS_INSUFFICIENT_RESOURCES
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)

Voir aussi

WdfIoTargetQueryForInterface