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)

Voir aussi

DEVICE_OBJECT

WdfDeviceGetIoTarget

WdfIoTargetCreate

WdfIoTargetWdmGetTargetFileHandle

WdfIoTargetWdmGetTargetFileObject