Compartilhar via


EVT_WDF_USB_READERS_FAILED função de retorno de chamada (wdfusb.h)

[Aplica-se a KMDF e UMDF]

A função de retorno de chamada de evento EvtUsbTargetPipeReadersFailed de um driver informa ao driver que um leitor contínuo relatou um erro ao processar uma solicitação de leitura.

Sintaxe

EVT_WDF_USB_READERS_FAILED EvtWdfUsbReadersFailed;

BOOLEAN EvtWdfUsbReadersFailed(
  [in] WDFUSBPIPE Pipe,
  [in] NTSTATUS Status,
  [in] USBD_STATUS UsbdStatus
)
{...}

Parâmetros

[in] Pipe

Um identificador para um objeto de pipe de estrutura.

[in] Status

O valor NTSTATUS retornado pelo destino de E/S do pipe.

[in] UsbdStatus

O status tipo USBD_STATUS valor retornado pelo destino de E/S do pipe.

Retornar valor

A função de retorno de chamada de evento EvtUsbTargetPipeReadersFailed retorna um valor booliano que, se TRUE, faz com que a estrutura redefina o pipe USB e reinicie o leitor contínuo. Se essa função retornar FALSE, a estrutura não redefinirá o dispositivo nem reiniciará o leitor contínuo.

Comentários

Para registrar uma função de retorno de chamada EvtUsbTargetPipeReadersFailed , o driver deve colocar o endereço da função em uma estrutura WDF_USB_CONTINUOUS_READER_CONFIG . Para obter informações sobre quando adicionar esse ponteiro de função, consulte a seção Comentários de WDF_USB_CONTINUOUS_READER_CONFIG_INIT.

Se um driver tiver criado um leitor contínuo para um pipe USB, a estrutura chamará a função de retorno de chamada EvtUsbTargetPipeReadersFailed do driver se o destino de E/S do driver relatar um erro ao concluir uma solicitação de leitura. (Se o destino de E/S concluir a solicitação com êxito, a estrutura chamará a função de retorno de chamada EvtUsbTargetPipeReadComplete do driver.)

Antes que a estrutura chame a função de retorno de chamada EvtUsbTargetPipeReadersFailed de um driver, ela tenta cancelar todas as solicitações de leitura em andamento. Nenhuma solicitação de leitura está em andamento quando a estrutura chama a função de retorno de chamada EvtUsbTargetPipeReadersFailed . A estrutura não enfileira nenhuma solicitação de leitura adicional até que a função de retorno de chamada EvtUsbTargetPipeReadersFailed retorne.

Para obter informações sobre como a estrutura sincroniza chamadas para a função de retorno de chamada EvtUsbTargetPipeReadersFailed com chamadas para outras funções de retorno de chamada, consulte a seção Comentários de EvtUsbTargetPipeReadComplete.

A função de retorno de chamada EvtUsbTargetPipeReadersFailed não deve chamar WdfIoTargetStop para interromper o destino USB do leitor contínuo. (Na verdade, chamar WdfIoTargetStop em uma função de retorno de chamada EvtUsbTargetPipeReadersFailed causa um deadlock.) Além disso, a função de retorno de chamada não deve chamar WdfIoTargetStart para reiniciar o leitor contínuo. Em vez disso, a estrutura reiniciará o leitor se a função de retorno de chamada retornar TRUE. Para obter mais informações sobre quando chamar WdfIoTargetStart e WdfIoTargetStop para um leitor contínuo, consulte Trabalhando com pipes USB.

Se um driver não fornecer uma função de retorno de chamada EvtUsbTargetPipeReadersFailed e o destino de E/S do driver relatar um erro, a estrutura redefinirá o pipe USB e reiniciará o leitor contínuo.

Para obter mais informações sobre a função de retorno de chamada EvtUsbTargetPipeReadersFailed e destinos de E/S USB, consulte Destinos de E/S USB.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Versão mínima do KMDF 1.0
Versão mínima do UMDF 2,0
Cabeçalho wdfusb.h (inclua Wdf.h)
IRQL PASSIVE_LEVEL

Confira também

EvtUsbTargetPipeReadComplete

WDF_USB_CONTINUOUS_READER_CONFIG