EVT_WDF_USB_READERS_FAILED función de devolución de llamada (wdfusb.h)
[Se aplica a KMDF y UMDF]
La de un controlador EvtUsbTargetPipeReadersFailed función de devolución de llamada de eventos informa al controlador de que un lector continuo ha notificado un error al procesar una solicitud de lectura.
Sintaxis
EVT_WDF_USB_READERS_FAILED EvtWdfUsbReadersFailed;
BOOLEAN EvtWdfUsbReadersFailed(
[in] WDFUSBPIPE Pipe,
[in] NTSTATUS Status,
[in] USBD_STATUS UsbdStatus
)
{...}
Parámetros
[in] Pipe
Identificador de un objeto de canalización de marco.
[in] Status
El valor NTSTATUS que devolvió el destino de E/S de la canalización.
[in] UsbdStatus
Valor de estado con tipo USBD_STATUSque devolvió el destino de E/S de la canalización.
Valor devuelto
La EvtUsbTargetPipeReadersFailed función de devolución de llamada de eventos devuelve un valor booleano que, si TRUE, hace que el marco restablezca la canalización USB y, a continuación, reinicie el lector continuo. Si esta función devuelve FALSE, el marco no restablece el dispositivo ni reinicia el lector continuo.
Observaciones
Para registrar una función de devolución de llamada EvtUsbTargetPipeReadersFailed, el controlador debe colocar la dirección de la función en una estructura WDF_USB_CONTINUOUS_READER_CONFIG. Para obtener información sobre cuándo agregar este puntero de función, vea la sección Comentarios de WDF_USB_CONTINUOUS_READER_CONFIG_INIT.
Si un controlador ha creado un lector continuo para una canalización USB, el marco llama al EvtUsbTargetPipeReadersFailed función de devolución de llamada si el destino de E/S del controlador notifica un error cuando completa una solicitud de lectura. (Si el destino de E/S completa correctamente la solicitud, el marco llama a la EvtUsbTargetPipeReadComplete función de devolución de llamada del controlador).
Antes de que el marco llame a la evtUsbTargetPipeReadersFailed función de devolución de llamada, intenta cancelar todas las solicitudes de lectura en curso. No hay solicitudes de lectura en curso cuando el marco llama a la EvtUsbTargetPipeReadersFailed función de devolución de llamada. El marco no pone en cola ninguna solicitud de lectura adicional hasta que la función de devolución de llamada EvtUsbTargetPipeReadersFailed.
Para obtener información sobre cómo el marco sincroniza las llamadas a la EvtUsbTargetPipeReadersFailed función de devolución de llamada con llamadas a otras funciones de devolución de llamada, vea la sección Comentarios de EvtUsbTargetPipeReadComplete.
La función de devolución de llamada EvtUsbTargetPipeReadersFailed no debe llamar a WdfIoTargetStop para detener el destino USB del lector continuo. (De hecho, llamar a WdfIoTargetStop en un EvtUsbTargetPipeReadersFailed función de devolución de llamada provoca un interbloqueo). Además, la función de devolución de llamada no debe llamar a WdfIoTargetStart para reiniciar el lector continuo. En su lugar, el marco reinicia el lector si la función de devolución de llamada devuelve TRUE. Para obtener más información sobre cuándo llamar a WdfIoTargetStart y WdfIoTargetStop para un lector continuo, vea Trabajar con canalizaciones USB.
Si un controlador no proporciona un EvtUsbTargetPipeReadersFailed función de devolución de llamada y el destino de E/S del controlador notifica un error, el marco restablece la canalización USB y reinicia el lector continuo.
Para obtener más información sobre la función de devolución de llamada EvtUsbTargetPipeReadersFailed y los destinos de E/S USB, consulte destinos de E/S USB.
Requisitos
Requisito | Valor |
---|---|
de la plataforma de destino de | Universal |
versión mínima de KMDF | 1.0 |
versión mínima de UMDF | 2.0 |
encabezado de | wdfusb.h (incluya Wdf.h) |
irQL | PASSIVE_LEVEL |