Partager via


IUsbTargetPipeContinuousReaderCallbackReadersFailed ::OnReaderFailure, méthode (wudfusb.h)

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

La fonction de rappel d’événement d’un pilote OnReaderFailure 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 d’état typée HRESULT retournée par la cible d’E/S du canal USB.

Valeur de retour

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 FAUX, l’infrastructure ne réinitialise pas l’appareil ou redémarre le lecteur continu.

Remarques

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

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

Avant que l’infrastructure appelle le OnReaderFailure d’un pilote fonction de rappel, il 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 les demandes de lecture supplémentaires tant que la fonction de rappel onReaderFailure n’est pas retournée.

Pour plus d’informations sur la synchronisation des appels à la fonction de rappel OnReaderFailure avec des appels à d’autres fonctions de rappel, consultez la section Notes 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, appeler 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, le framework 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 Working with USB Pipes in UMDF.

Si un pilote ne fournit pas de OnReaderFailure fonction de rappel 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 les cibles de rappel OnReaderFailure et les cibles d’E/S USB, consultez Gestion d’une cible d’E/S USB.

Exigences

Exigence Valeur
fin du support Indisponible dans UMDF 2.0 et versions ultérieures.
plateforme cible Bureau
version minimale de UMDF 1.9
d’en-tête wudfusb.h (include Wudfusb.h)

Voir aussi

IUsbTargetPipeContinuousReaderCallbackReadComplete ::OnReaderCompletion

IUsbTargetPipeContinuousReaderCallbackReadersFailed