WdfIoTargetStart, fonction (wdfiotarget.h)

[S’applique à KMDF et UMDF]

La méthode WdfIoTargetStart commence à envoyer des requêtes en file d’attente à une cible d’E/S locale ou distante.

Syntaxe

NTSTATUS WdfIoTargetStart(
  [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

WdfIoTargetStart 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_DEVICE_STATE
Le périphérique a été déconnecté.
 

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

Si votre pilote peut détecter les erreurs d’appareil récupérables, vous pouvez appeler WdfIoTargetStop pour arrêter temporairement l’envoi de demandes, puis appeler ultérieurement WdfIoTargetStart pour reprendre l’envoi des demandes.

En outre, si un pilote appelle WdfUsbTargetPipeConfigContinuousReader pour configurer un lecteur continu pour un canal USB, la fonction de rappel EvtDeviceD0Entry du pilote doit appeler WdfIoTargetStart pour démarrer le lecteur.

Votre pilote doit appeler WdfIoTargetStart et WdfIoTargetStop de manière synchrone. Une fois que le pilote a appelé l’une de ces fonctions, il ne doit pas appeler l’autre fonction avant que la première ne retourne.

Pour plus d’informations sur WdfIoTargetStart, consultez Contrôle de l’état d’une cible d’E/S générale.

Pour plus d’informations sur les cibles d’E/S, consultez Utilisation de cibles d’E/S.

Exemples

L’exemple de code suivant montre comment une fonction de rappel EvtDeviceD0Entry peut appeler WdfIoTargetStart, si le pilote utilise un lecteur continu pour un canal USB.

NTSTATUS
MyEvtDeviceD0Entry(
    IN  WDFDEVICE Device,
    IN  WDF_POWER_DEVICE_STATE PreviousState
)
{
    PDEVICE_CONTEXT  pDeviceContext;
    NTSTATUS  status;

    pDeviceContext = GetMyDeviceContext(Device);

    status = WdfIoTargetStart(WdfUsbTargetPipeGetIoTarget(pDeviceContext->InterruptPipe));

    return status;
}

Configuration requise

Condition requise Valeur
Plateforme cible Universal
Version KMDF minimale 1.0
Version UMDF minimale 2.0
En-tête wdfiotarget.h (inclure Wdf.h)
Bibliothèque Wdf01000.sys (KMDF) ; WUDFx02000.dll (UMDF)
IRQL <=DISPATCH_LEVEL
Règles de conformité DDI DriverCreate(kmdf), FailD0EntryIoTargetState(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Voir aussi

EvtDeviceD0Entry

WdfDeviceGetIoTarget

WdfIoTargetCreate

WdfIoTargetStop

WdfUsbTargetPipeConfigContinuousReader