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 |