Compartir a través de


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

Consulte también

EvtUsbTargetPipeReadComplete

WDF_USB_CONTINUOUS_READER_CONFIG