EVT_WDF_USB_READERS_FAILED funzione di callback (wdfusb.h)
[Si applica a KMDF e UMDF]
Il driver EvtUsbTargetPipeReadersFailed funzione di callback degli eventi 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
Il valore NTSTATUS restituito dalla destinazione di I/O della pipe.
[in] UsbdStatus
Valore di stato USBD_STATUStipizzato restituito dalla destinazione di I/O della pipe.
Valore restituito
La funzione di callback 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.
Osservazioni
Per registrare un EvtUsbTargetPipeReadersFailed funzione di callback, 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 il driver EvtUsbTargetPipeReadersFailed funzione di callback 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 il driver EvtUsbTargetPipeReadComplete funzione di callback.
Prima che il framework chiami un driver EvtUsbTargetPipeReadersFailed funzione di callback, 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 fino a quando non viene restituita la funzione di callback EvtUsbTargetPipeReadersFailed.
Per informazioni su come il framework sincronizza le chiamate alla EvtUsbTargetPipeReadersFailed funzione di callback 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 di WdfIoTargetStop in un EvtUsbTargetPipeReadersFailed funzione di callback 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 un EvtUsbTargetPipeReadersFailed funzione di callback 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 EvtUsbTargetPipeReadersFailed funzione di callback e sulle destinazioni di I/O USB, vedere Destinazioni I/O USB.
Fabbisogno
Requisito | Valore |
---|---|
piattaforma di destinazione | Universale |
versione minima di KMDF | 1.0 |
versione minima di UMDF | 2.0 |
intestazione | wdfusb.h (include Wdf.h) |
IRQL | PASSIVE_LEVEL |