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