Partager via


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 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 de retour

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
L’appareil a été supprimé.
 

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

Une vérification de bogue se produit si le pilote fournit un handle d’objet non valide.

Remarques

Si votre pilote peut détecter des erreurs d’appareil récupérables, vous souhaiterez peut-être que votre pilote appelle WdfIoTargetStop pour arrêter temporairement l’envoi de demandes, puis appeler ultérieurement WdfIoTargetStart pour reprendre l’envoi de 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 appelle 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 des 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;
}

Spécifications

Besoin Valeur
plateforme cible Universel
version minimale de KMDF 1.0
version minimale de UMDF 2.0
En-tête wdfiotarget.h (include 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