WdfIoTargetWdmGetTargetDeviceObject, fonction (wdfiotarget.h)
[S’applique uniquement à KMDF]
La méthode WdfIoTargetWdmGetTargetDeviceObject retourne un pointeur vers l’objet d’appareil WDM (Windows Driver Model) associé à une cible d’E/S locale ou distante spécifiée.
Syntaxe
PDEVICE_OBJECT WdfIoTargetWdmGetTargetDeviceObject(
[in] WDFIOTARGET IoTarget
);
Paramètres
[in] IoTarget
Handle vers un objet cible d’E/S local ou distant qui a été obtenu à partir d’un appel précédent à WdfDeviceGetIoTarget ou WdfIoTargetCreate ou à partir d’une méthode qu’une cible d’E/S spécialisée fournit.
Valeur retournée
WdfIoTargetWdmGetTargetDeviceObject retourne un pointeur vers une structure de DEVICE_OBJECT WDM.
Un bogue case activée se produit si le pilote fournit un handle d’objet non valide.
Remarques
La plupart des pilotes basés sur l’infrastructure n’ont pas besoin d’accéder à l’objet de périphérique WDM d’une cible d’E/S.
Le pointeur retourné par la méthode WdfIoTargetWdmGetTargetDeviceObject est valide jusqu’à ce que le pilote appelle WdfIoTargetClose ou WdfIoTargetCloseForQueryRemove, ou jusqu’à ce que l’objet cible d’E/S distant soit supprimé. Si le pilote fournit une fonction EvtCleanupCallback pour l’objet cible d’E/S distant, et si l’objet est supprimé avant la fermeture de la cible d’E/S distante, le pointeur est valide jusqu’à ce que la fonction EvtCleanupCallback retourne.
Si le pilote tente d’accéder à l’objet de périphérique WDM après sa suppression, le pilote peut provoquer le blocage du système. L’exemple toastmon montre comment le pilote peut fournir une fonction de rappel EvtIoTargetQueryRemove afin qu’il soit averti si la cible d’E/S est supprimée.
Pour plus d’informations sur WdfIoTargetWdmGetTargetDeviceObject, consultez Obtention d’informations sur une cible d’E/S générale.
Pour plus d’informations sur les cibles d’E/S, consultez Utilisation des cibles d’E/S.
Exemples
L’exemple de code suivant vérifie la structure WDM DEVICE_OBJECT d’une cible d’E/S pour vérifier que la cible prend en charge les opérations d’E/S directes.
if (!((WdfIoTargetWdmGetTargetDeviceObject(Adapter->IoTarget))->Flags
& DO_DIRECT_IO)) {
ASSERTMSG("Target device doesn't support direct I/O\n", FALSE);
return STATUS_INVALID_DEVICE_REQUEST;
}
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 | <=DISPATCH_LEVEL |
Règles de conformité DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |