Partager via


WdfIoTargetQueryForInterface, fonction (wdfiotarget.h)

[S’applique uniquement à KMDF]

La méthode WdfIoTargetQueryForInterface obtient l’accès à l’interface définie par le pilote identifiée par le GUID d’une cible d’E/S distante.

Syntaxe

NTSTATUS WdfIoTargetQueryForInterface(
  [in]           WDFIOTARGET IoTarget,
  [in]           LPCGUID     InterfaceType,
  [out]          PINTERFACE  Interface,
  [in]           USHORT      Size,
  [in]           USHORT      Version,
  [in, optional] PVOID       InterfaceSpecificData
);

Paramètres

[in] IoTarget

Handle vers un objet cible d’E/S distant obtenu à partir d’un appel précédent à WdfIoTargetCreate.

[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 au pilote vers laquelle l’interface pointe.

[in] Version

Numéro de version de l’interface demandée. Le pilote qui exporte l’interface demandée définit le format de cette valeur.

[in, optional] InterfaceSpecificData

Informations supplémentaires spécifiques à l’interface. Ce paramètre est facultatif et peut être NULL.

Valeur retournée

WdfIoTargetQueryForInterface retourne STATUS_SUCCESS si l’opération réussit. Sinon, cette méthode peut retourner l’une des valeurs suivantes :

Code de retour Description
STATUS_INVALID_PARAMETER
Le paramètre IoTarget, InterfaceType ou Interface a la valeur NULL.
STATUS_INSUFFICIENT_RESOURCES
l’infrastructure n’a pas pu allouer une demande à envoyer à un autre pilote.
 

Cette méthode peut également retourner d’autres valeurs NTSTATUS.

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

Remarques

Votre pilote peut appeler WdfIoTargetQueryForInterface pour obtenir l’accès à une interface définie par le pilote qui a été créée par un pilote dans une autre pile de pilotes. Pour accéder à 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 votre pilote, votre pilote doit appeler WdfFdoQueryForInterface.

Les pilotes basés sur l’infrastructure définissent des interfaces en appelant WdfDeviceAddQueryInterface. Pour plus d’informations sur les interfaces définies par le pilote, consultez Utilisation d’interfaces Driver-Defined.

Exemples

L’exemple de code suivant tente d’accéder à l’interface d’une cible d’E/S distante spécifiée. GUID_RAWPDO_INTERFACE_STANDARD est le GUID qui identifie l’interface.

NTSTATUS status;
RAWPDO_INTERFACE_STANDARD busInterface;

status = WdfIoTargetQueryForInterface(
                                      IoTarget,
                                      &GUID_RAWPDO_INTERFACE_STANDARD,
                                      (PINTERFACE) &busInterface,
                                      sizeof(RAWPDO_INTERFACE_STANDARD),
                                      1,
                                      NULL
                                      );
if (!NT_SUCCESS (status)){
    return status;
}

Configuration requise

Condition requise Valeur
Plateforme cible Universal
Version KMDF minimale 1.0
En-tête wdfiotarget.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

INTERFACE

WdfDeviceAddQueryInterface

WdfFdoQueryForInterface

WdfIoTargetCreate