EVT_WDF_USB_READERS_FAILED función de devolución de llamada (wdfusb.h)

[Se aplica a KMDF y UMDF]

La función de devolución de llamada de eventos EvtUsbTargetPipeReadersFailed de un controlador 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

Valor NTSTATUS que devolvió el destino de E/S de la canalización.

[in] UsbdStatus

Valor de estado con tipo USBD_STATUS que devolvió el destino de E/S de la canalización.

Valor devuelto

La función de devolución de llamada de eventos EvtUsbTargetPipeReadersFailed devuelve un valor booleano que, si es TRUE, hace que el marco restablezca la canalización USB y reinicie el lector continuo. Si esta función devuelve FALSE, el marco no restablece el dispositivo ni reinicia el lector continuo.

Comentarios

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 de 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 a la función de devolución de llamada EvtUsbTargetPipeReadersFailed del controlador 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 función de devolución de llamada EvtUsbTargetPipeReadComplete del controlador).

Antes de que el marco llame a la función de devolución de llamada EvtUsbTargetPipeReadersFailed de un controlador, intenta cancelar todas las solicitudes de lectura en curso. No hay solicitudes de lectura en curso cuando el marco llama a la función de devolución de llamada EvtUsbTargetPipeReadersFailed . El marco no pone en cola ninguna solicitud de lectura adicional hasta que la función de devolución de llamada EvtUsbTargetPipeReadersFailed devuelve.

Para obtener información sobre cómo el marco sincroniza las llamadas a la función de devolución de llamada EvtUsbTargetPipeReadersFailed con llamadas a otras funciones de devolución de llamada, consulte 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 una función de devolución de llamada EvtUsbTargetPipeReadersFailed 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 una función de devolución de llamada EvtUsbTargetPipeReadersFailed 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 Value
Plataforma de destino Universal
Versión mínima de KMDF 1.0
Versión mínima de UMDF 2.0
Encabezado wdfusb.h (incluya Wdf.h)
IRQL PASSIVE_LEVEL

Consulte también

EvtUsbTargetPipeReadComplete

WDF_USB_CONTINUOUS_READER_CONFIG