Condividi tramite


Metodo IUsbTargetPipeContinuousReaderCallbackReadersFailed::OnReaderFailure (wudfusb.h)

[Avviso: UMDF 2 è la versione più recente di UMDF e sostituisce UMDF 1. Tutti i nuovi driver UMDF devono essere scritti usando UMDF 2. Non vengono aggiunte nuove funzionalità a UMDF 1 ed è disponibile un supporto limitato per UMDF 1 nelle versioni più recenti di Windows 10. I driver di Windows universali devono usare UMDF 2. Per altre info, vedi Introduzione con UMDF.]

La funzione di callback dell'evento OnReaderFailure di un driver informa il driver che un lettore continuo ha segnalato un errore durante l'elaborazione di una richiesta di lettura.

Sintassi

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

Parametri

[in] pPipe

Puntatore all'interfaccia IWDFUsbTargetPipe per la pipe USB su cui il driver ha abilitato un lettore continuo.

[in] hrStatus

Valore di stato tipizzato HRESULT restituito dalla destinazione di I/O della pipe USB.

Valore restituito

La funzione di callback dell'evento OnReaderFailure deve restituire un valore booleano. Se il valore restituito è TRUE, il framework reimposta la pipe USB e quindi riavvia il lettore continuo. Se la funzione di callback restituisce FALSE, il framework non reimposta il dispositivo o riavvia il lettore continuo.

Commenti

Per registrare una funzione di callback OnReaderFailure , il driver deve fornire un puntatore all'interfaccia IUsbTargetPipeContinuousReaderCallbackReadersFailed quando chiama IWDFUsbTargetPipe2::ConfigureContinuousReader.

Se un driver ha creato un lettore continuo per una pipe USB, il framework chiama la funzione di callback OnReaderFailure del driver se la destinazione di I/O del driver segnala un errore quando completa una richiesta di lettura. Se la destinazione di I/O completa correttamente la richiesta, il framework chiama la funzione di callback IUsbTargetPipeContinuousReaderCallbackReadComplete::OnReaderCompletion del driver.

Prima che il framework chiami la funzione di callback OnReaderFailure di un driver, tenta di annullare tutte le richieste di lettura in corso. Nessuna richiesta di lettura è in corso quando il framework chiama la funzione di callback OnReaderFailure . Il framework non accoda altre richieste di lettura finché non viene restituita la funzione di callback OnReaderFailure .

Per informazioni su come il framework sincronizza le chiamate alla funzione di callback OnReaderFailure con chiamate ad altre funzioni di callback, vedere la sezione Osservazioni di IUsbTargetPipeContinuousReaderCallbackReadComplete::OnReaderCompletion.

La funzione di callback OnReaderFailure non deve chiamare IWDFIoTargetStateManagement::Stop per arrestare la destinazione USB del lettore continuo. La chiamata a IWDFIoTargetStateManagement::Stop in una funzione di callback OnReaderFailure causa un deadlock. Inoltre, la funzione di callback non deve chiamare IWDFIoTargetStateManagement::Start per riavviare il lettore continuo. Il framework riavvia invece il lettore se la funzione di callback restituisce TRUE. Per altre informazioni su quando chiamare IWDFIoTargetStateManagement::Start e IWDFIoTargetStateManagement::Stop per un lettore continuo, vedere Uso delle pipe USB in UMDF.

Se un driver non fornisce una funzione di callback OnReaderFailure e la destinazione di I/O del driver segnala un errore, il framework reimposta la pipe USB e riavvia il lettore continuo.

Per altre informazioni sulla funzione di callback OnReaderFailure e sulle destinazioni di I/O USB, vedere Gestione di una destinazione di I/O USB.

Requisiti

Requisito Valore
Fine del supporto Non disponibile in UMDF 2.0 e versioni successive.
Piattaforma di destinazione Desktop
Versione UMDF minima 1,9
Intestazione wudfusb.h (include Wudfusb.h)

Vedi anche

IUsbTargetPipeContinuousReaderCallbackReadComplete::OnReaderCompletion

IUsbTargetPipeContinuousReaderCallbackReadersFailed