Partager via


Méthode IUsbTargetPipeContinuousReaderCallbackReaderFailed ::OnReaderFailure (wudfusb.h)

[Avertissement : UMDF 2 est la dernière version d’UMDF et remplace UMDF 1. Tous les nouveaux pilotes UMDF doivent être écrits à l’aide d’UMDF 2. Aucune nouvelle fonctionnalité n’est ajoutée à UMDF 1 et la prise en charge d’UMDF 1 est limitée sur les versions plus récentes de Windows 10. Les pilotes Windows universels doivent utiliser UMDF 2. Pour plus d’informations, consultez Prise en main avec UMDF.]

La fonction de rappel d’événement OnReaderFailure d’un pilote informe le pilote qu’un lecteur continu a signalé une erreur lors du traitement d’une demande de lecture.

Syntaxe

BOOL OnReaderFailure(
  [in] IWDFUsbTargetPipe *pPipe,
  [in] HRESULT           hrStatus
);

Paramètres

[in] pPipe

Pointeur vers l’interface IWDFUsbTargetPipe pour le canal USB sur lequel le pilote a activé un lecteur continu.

[in] hrStatus

Valeur de type HRESULT status que la cible d’E/S du canal USB a retournée.

Valeur retournée

La fonction de rappel d’événement OnReaderFailure doit retourner une valeur booléenne. Si la valeur de retour est TRUE, l’infrastructure réinitialise le canal USB, puis redémarre le lecteur continu. Si la fonction de rappel retourne FALSE, l’infrastructure ne réinitialise pas l’appareil ni ne redémarre le lecteur continu.

Remarques

Pour inscrire une fonction de rappel OnReaderFailure , votre pilote doit fournir un pointeur vers l’interface IUsbTargetPipeContinuousReaderCallbackReadersFailed du pilote lorsqu’il appelle IWDFUsbTargetPipe2 ::ConfigureContinuousReader.

Si un pilote a créé un lecteur continu pour un canal USB, l’infrastructure appelle la fonction de rappel OnReaderFailure du pilote si la cible d’E/S du pilote signale une erreur lorsqu’elle termine une demande de lecture. (Si la cible E/S termine correctement la demande, l’infrastructure appelle la fonction de rappel IUsbTargetPipeContinuousReaderCallbackReadComplete ::OnReaderCompletion du pilote.)

Avant que l’infrastructure n’appelle la fonction de rappel OnReaderFailure d’un pilote, elle tente d’annuler toutes les demandes de lecture en cours. Aucune demande de lecture n’est en cours lorsque l’infrastructure appelle la fonction de rappel OnReaderFailure . L’infrastructure ne met pas en file d’attente des demandes de lecture supplémentaires tant que la fonction de rappel OnReaderFailure n’est pas retournée.

Pour plus d’informations sur la façon dont l’infrastructure synchronise les appels à la fonction de rappel OnReaderFailure avec les appels à d’autres fonctions de rappel, consultez la section Remarques de IUsbTargetPipeContinuousReaderCallbackReadComplete ::OnReaderCompletion.

La fonction de rappel OnReaderFailure ne doit pas appeler IWDFIoTargetStateManagement ::Stop pour arrêter la cible USB du lecteur continu. (En fait, l’appel de IWDFIoTargetStateManagement ::Stop dans une fonction de rappel OnReaderFailure provoque un blocage.) En outre, la fonction de rappel ne doit pas appeler IWDFIoTargetStateManagement ::Start pour redémarrer le lecteur continu. Au lieu de cela, l’infrastructure redémarre le lecteur si la fonction de rappel retourne TRUE. Pour plus d’informations sur le moment d’appeler IWDFIoTargetStateManagement ::Start et IWDFIoTargetStateManagement ::Stop pour un lecteur continu, consultez Utilisation de canaux USB dans UMDF.

Si un pilote ne fournit pas de fonction de rappel OnReaderFailure et que la cible d’E/S du pilote signale une erreur, l’infrastructure réinitialise le canal USB et redémarre le lecteur continu.

Pour plus d’informations sur la fonction de rappel OnReaderFailure et les cibles d’E/S USB, consultez Gestion d’une cible d’E/S USB.

Configuration requise

Condition requise Valeur
Fin de la prise en charge Non disponible dans UMDF 2.0 et versions ultérieures.
Plateforme cible Desktop (Expérience utilisateur)
Version UMDF minimale 1,9
En-tête wudfusb.h (inclure Wudfusb.h)

Voir aussi

IUsbTargetPipeContinuousReaderCallbackReadComplete ::OnReaderCompletion

IUsbTargetPipeContinuousReaderCallbackReadersFailed