Compartir a través de


Método IUsbTargetPipeContinuousReaderCallbackReadersFailed::OnReaderFailure (wudfusb.h)

[Advertencia: UMDF 2 es la versión más reciente de UMDF y sustituye a UMDF 1. Todos los controladores UMDF nuevos deben escribirse con UMDF 2. No se agregan nuevas características a UMDF 1 y hay compatibilidad limitada con UMDF 1 en versiones más recientes de Windows 10. Los controladores universales de Windows deben usar UMDF 2. Para obtener más información, consulta Introducción con UMDF.

La función de devolución de llamada de eventos OnReaderFailure de un controlador informa al controlador de que un lector continuo ha notificado un error al procesar una solicitud de lectura.

Sintaxis

BOOL OnReaderFailure(
  [in] IWDFUsbTargetPipe *pPipe,
  [in] HRESULT           hrStatus
);

Parámetros

[in] pPipe

Puntero a la interfaz IWDFUsbTargetPipe para la canalización USB en la que el controlador ha habilitado un lector continuo.

[in] hrStatus

Valor de estado con tipo HRESULT devuelto por el destino de E/S de la canalización USB.

Valor devuelto

La función de devolución de llamada del evento OnReaderFailure debe devolver un valor booleano. Si el valor devuelto es TRUE, el marco restablece la canalización USB y, a continuación, reinicia el lector continuo. Si la función de devolución de llamada devuelve FALSE, el marco no restablece el dispositivo ni reinicia el lector continuo.

Comentarios

Para registrar una función de devolución de llamada OnReaderFailure , el controlador debe proporcionar un puntero a la interfaz IUsbTargetPipeContinuousReaderCallbackReadersFailed cuando llama a IWDFUsbTargetPipe2::ConfigureContinuousReader.

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 OnReaderFailure 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 IUsbTargetPipeContinuousReaderCallbackReadComplete::OnReaderCompletion ).

Antes de que el marco llame a la función de devolución de llamada OnReaderFailure 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 OnReaderFailure . El marco de trabajo no pone en cola ninguna solicitud de lectura adicional hasta que se devuelva la función de devolución de llamada OnReaderFailure .

Para obtener información sobre cómo el marco sincroniza las llamadas a la función de devolución de llamada OnReaderFailure con llamadas a otras funciones de devolución de llamada, vea la sección Comentarios de IUsbTargetPipeContinuousReaderCallbackReadComplete::OnReaderCompletion.

La función de devolución de llamada OnReaderFailure no debe llamar a IWDFIoTargetStateManagement::Stop para detener el destino USB del lector continuo. (De hecho, llamar a IWDFIoTargetStateManagement::Stop en una función de devolución de llamada OnReaderFailure provoca un interbloqueo). Además, la función de devolución de llamada no debe llamar a IWDFIoTargetStateManagement::Start 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 IWDFIoTargetStateManagement::Start e IWDFIoTargetStateManagement::Stop para un lector continuo, vea Trabajar con canalizaciones USB en UMDF.

Si un controlador no proporciona una función de devolución de llamada OnReaderFailure 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 OnReaderFailure y los destinos de E/S USB, consulte Control de un destino de E/S USB.

Requisitos

Requisito Value
Finalización del soporte técnico No disponible en UMDF 2.0 y versiones posteriores.
Plataforma de destino Escritorio
Versión mínima de UMDF 1,9
Encabezado wudfusb.h (incluya Wudfusb.h)

Consulte también

IUsbTargetPipeContinuousReaderCallbackReadComplete::OnReaderCompletion

IUsbTargetPipeContinuousReaderCallbackReadersFailed