Visão geral do envio de transferências de dados USB em drivers de cliente USB
Os artigos nesta seção fornecem informações sobre pipes USB e URBs para solicitações de E/S e descrevem como um driver cliente pode usar DDIs (interfaces de driver de dispositivo) para transferir dados de e para um dispositivo USB.
Uma transferência ocorre sempre que os dados são movidos entre o controlador host e o dispositivo USB. Em geral, as transferências USB podem ser amplamente categorizadas em transferências de controle e transferências de dados. Todos os dispositivos USB devem dar suporte a transferências de controle e podem dar suporte a pontos de extremidade para transferências de dados. Cada tipo de transferência é associado ao tipo de ponto de extremidade USB (um buffer no dispositivo). A transferência de controle está associada ao ponto de extremidade padrão e as transferências de dados usam pontos de extremidade unidirecionais. Os tipos de transferência de dados usam pontos de extremidade de interrupção, em massa e isócronos. A pilha de driver USB cria um canal de comunicação chamado pipe para cada ponto de extremidade compatível com o dispositivo. Uma extremidade do pipe é o ponto de extremidade do dispositivo. A outra extremidade do pipe é sempre o controlador de host.
Antes de enviar solicitações de E/S para o dispositivo, o driver cliente deve recuperar informações sobre configurações, interfaces, pontos de extremidade, fornecedor e descritores específicos de classe de um dispositivo USB. Além disso, o driver também deve configurar o dispositivo. A configuração do dispositivo envolve tarefas como selecionar uma configuração e uma configuração alternativa dentro de cada interface. Cada configuração alternativa pode especificar um ou mais pontos de extremidade USB disponíveis para transferências de dados.
Para obter informações sobre a configuração do dispositivo, consulte Como selecionar uma configuração para um dispositivo USB e Como selecionar uma configuração alternativa em uma interface USB.
Depois que o driver cliente tiver configurado o dispositivo, o driver terá acesso às alças de pipe criadas pela pilha de driver USB para cada ponto de extremidade na configuração alternativa selecionada no momento. Para transferir dados para um ponto de extremidade, um driver de cliente cria uma solicitação formatando um URB específico para o tipo de solicitação.
Nesta seção
Artigo | Descrição |
---|---|
Como enviar uma transferência de controle USB | Este artigo explica a estrutura de uma transferência de controle e como um driver de cliente deve enviar uma solicitação de controle para o dispositivo. |
Como enumerar pipes USB | Este artigo fornece uma visão geral dos pipes USB e descreve as etapas exigidas por um driver cliente USB para obter identificadores de pipe da pilha de driver USB. |
Como usar o leitor contínuo para ler dados de um pipe USB | Este artigo descreve o objeto de leitor contínuo fornecido pelo WDF. Os procedimentos neste artigo fornecem instruções passo a passo sobre como configurar o objeto e usá-lo para ler dados de um pipe USB. |
Como enviar solicitações de transferência em massa USB | Este artigo fornece uma breve visão geral sobre transferências em massa usb. Ele também fornece instruções passo a passo sobre como um driver cliente pode enviar e receber dados em massa do dispositivo. |
Como abrir e fechar fluxos estáticos em um ponto de extremidade em massa USB | Este artigo discute a funcionalidade de fluxos estáticos e explica como um driver de cliente USB pode abrir e fechar fluxos em um ponto de extremidade em massa de um dispositivo USB 3.0. |
Como transferir dados para pontos de extremidade isócronos USB | Este artigo descreve como um driver cliente pode criar um URB (Bloco de Solicitação USB) para transferir dados de e para pontos de extremidade isócronos em um dispositivo USB. |
Como enviar MDLs encadeados | Neste artigo, você aprenderá sobre a funcionalidade de MDLs encadeadas na pilha de driver USB e como um driver cliente pode enviar um buffer de transferência como uma cadeia de estrutura MDL . |
Como se recuperar de erros de pipe USB | Este artigo fornece informações sobre as etapas que você pode tentar quando uma transferência de dados para um pipe USB falha. Os mecanismos descritos neste artigo abrangem operações de anulação, redefinição e porta de ciclo em pipes em massa, interrupção e isócronos. |
Alocação de largura de banda USB | Esta seção fornece diretrizes sobre o gerenciamento cuidadoso da largura de banda USB. |