EVT_WDF_USB_READERS_FAILED funzione di callback (wdfusb.h)
[Si applica a KMDF e UMDF]
La funzione di callback dell'evento EvtUsbTargetPipeReadersFailed di un driver informa il driver che un lettore continuo ha segnalato un errore durante l'elaborazione di una richiesta di lettura.
Sintassi
EVT_WDF_USB_READERS_FAILED EvtWdfUsbReadersFailed;
BOOLEAN EvtWdfUsbReadersFailed(
[in] WDFUSBPIPE Pipe,
[in] NTSTATUS Status,
[in] USBD_STATUS UsbdStatus
)
{...}
Parametri
[in] Pipe
Handle per un oggetto pipe del framework.
[in] Status
Valore NTSTATUS restituito dalla destinazione di I/O della pipe.
[in] UsbdStatus
Valore di stato tipizzato USBD_STATUS restituito dalla destinazione di I/O della pipe.
Valore restituito
La funzione di callback dell'evento EvtUsbTargetPipeReadersFailed restituisce un valore booleano che, se TRUE, fa sì che il framework reimposta la pipe USB e quindi riavvia il lettore continuo. Se questa funzione restituisce FALSE, il framework non reimposta il dispositivo o riavvia il lettore continuo.
Commenti
Per registrare una funzione di callback EvtUsbTargetPipeReadersFailed , il driver deve inserire l'indirizzo della funzione in una struttura WDF_USB_CONTINUOUS_READER_CONFIG . Per informazioni su quando aggiungere questo puntatore a funzione, vedere la sezione Osservazioni di WDF_USB_CONTINUOUS_READER_CONFIG_INIT.
Se un driver ha creato un lettore continuo per una pipe USB, il framework chiama la funzione di callback EvtUsbTargetPipeReadersFailed 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 EvtUsbTargetPipeReadComplete del driver.
Prima che il framework chiami la funzione di callback EvtUsbTargetPipeReadersFailed di un driver, tenta di annullare tutte le richieste di lettura in corso. Non sono in corso richieste di lettura quando il framework chiama la funzione di callback EvtUsbTargetPipeReadersFailed . Il framework non accoda altre richieste di lettura finché non viene restituita la funzione di callback EvtUsbTargetPipeReadersFailed .
Per informazioni su come il framework sincronizza le chiamate alla funzione di callback EvtUsbTargetPipeReadersFailed con chiamate ad altre funzioni di callback, vedere la sezione Osservazioni di EvtUsbTargetPipeReadComplete.
La funzione di callback EvtUsbTargetPipeReadersFailed non deve chiamare WdfIoTargetStop per arrestare la destinazione USB del lettore continuo. La chiamata a WdfIoTargetStop in una funzione di callback EvtUsbTargetPipeReadersFailed causa un deadlock. Inoltre, la funzione di callback non deve chiamare WdfIoTargetStart per riavviare il lettore continuo. Il framework riavvia invece il lettore se la funzione di callback restituisce TRUE. Per altre informazioni su quando chiamare WdfIoTargetStart e WdfIoTargetStop per un lettore continuo, vedere Uso delle pipe USB.
Se un driver non fornisce una funzione di callback EvtUsbTargetPipeReadersFailed 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 EvtUsbTargetPipeReadersFailed e sulle destinazioni di I/O USB, vedere Destinazioni di I/O USB.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Versione KMDF minima | 1.0 |
Versione UMDF minima | 2,0 |
Intestazione | wdfusb.h (include Wdf.h) |
IRQL | PASSIVE_LEVEL |