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 |
---|---|
|
Le paramètre IoTarget, InterfaceType ou Interface a la valeur NULL. |
|
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) |