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 |
---|---|
|
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) |