Partilhar via


Introdução ao desenvolvimento USB

Um dispositivo USB (Universal Serial Bus) define suas capacidades e recursos por meio de configurações, interfaces, configurações alternativas e pontos de extremidade. Este tópico fornece uma visão geral de alto nível desses conceitos. Para obter detalhes, consulte as especificações USB em Universal Serial Bus Documents.

Nesta secção

Tópico Descrição
Layout do dispositivo USB Um dispositivo USB define suas capacidades e recursos por meio de configurações, interfaces, configurações alternativas e pontos de extremidade. Este tópico fornece uma visão geral de alto nível desses conceitos.
Descritores USB padrão Um dispositivo USB fornece informações sobre si mesmo em estruturas de dados chamadas descritores USB. Esta seção fornece informações sobre dispositivos, configurações, interface e descritores de ponto final e maneiras de recuperá-los de um dispositivo USB.
Pontos finais USB e seus tubos Um dispositivo USB tem pontos finais que são usados para transferências de dados. No lado do host, os pontos finais são representados por tubos. Este tópico diferencia esses dois termos.
USB no Windows - FAQ Este tópico apresenta perguntas freqüentes para desenvolvedores de drivers que são novos no desenvolvimento e integração de dispositivos USB e drivers com sistemas operacionais Windows.

Cenários USB comuns

1—Obtenha o identificador do dispositivo para comunicação e use o identificador ou objeto recuperado para enviar transferências de dados.

Controlador do cliente Aplicativo UWP Aplicação de ambiente de trabalho do Windows
KMDF:
WdfUsbTargetDeviceCreateWithParameters

UMDF:
IWDFUsbTargetDevice
UsbDevice

Como ligar a um dispositivo USB
WinUsb_Initialize

Escrever um aplicativo da área de trabalho do Windows com base no modelo WinUSB

** Recuperação do descritor USB para obter informações sobre a(s) configuração(ões), interface(s), definição(ões) e ponto(s) final(is) do dispositivo.

Driver do cliente Aplicativo UWP Aplicação de ambiente de trabalho do Windows
KMDF:

WdfUsbTargetDeviceGetDeviceDescriptor
WdfUsbTargetDeviceRetrieveConfigDescriptor

UMDF:

IWDFUsbTargetDevice::RetrieveDescriptor

Descritores USB
UsbDevice.DeviceDescritor
UsbConfiguration.Descritores
UsbInterface.Descritores
UsbInterfaceSetting.Descritores

Como obter descritores USB
WinUsb_GetDescriptor
WinUsb_QueryInterfaceSettings
WinUsb_QueryPipe

Interrogar o dispositivo por descritores USB

2—Configure o dispositivo para selecionar uma configuração USB ativa e uma configuração por interface.

Driver do cliente Aplicativo UWP Aplicação de ambiente de trabalho do Windows
KMDF:
WdfUsbTargetDeviceSelectConfig
WdfUsbTargetDeviceCreateUrb
USBD_SelectConfigUrbAllocateAndBuild
WdfUsbInterfaceSelectSetting

Como selecionar uma configuração para um dispositivo USB.

Como selecionar uma configuração alternativa em uma interface USB.

UMDF:
A seleção de configuração não é suportada

IWDFUsbInterface::SelectSetting
UsbInterfaceSetting.SelectSettingAsync

Como selecionar uma configuração de interface USB
WinUsb_SetCurrentAlternateSetting

3—Envie transferências de controle para configurar o dispositivo e executar comandos de fornecedor específicos para determinado dispositivo.

Driver do cliente Aplicativo UWP Aplicação de ambiente de trabalho do Windows
KMDF:
WdfUsbTargetDeviceSendControlTransferSynchronously
WdfUsbTargetDeviceFormatRequestForControlTransfer
USBD_SelectConfigUrbAllocateAndBuild

UMDF:
IWDFUsbTargetDevice::FormatRequestForControlTransfer

Como enviar uma transferência de controlo USB
SendControlInTransferAsync
SendControlOutTransferAsync

Como enviar uma transferência de controlo USB
WinUsb_ControlTransfer

Enviar transferência de controle para o endpoint padrão

4—Envie transferências em massa, normalmente usadas por dispositivos de armazenamento em massa que transferem grande quantidade de dados.

Driver do cliente Aplicativo UWP Aplicação de ambiente de trabalho do Windows
KMDF:
WdfUsbTargetPipeReadSynchronously
WdfUsbTargetPipeWriteSynchronously
WdfUsbTargetPipeFormatRequestForRead
WdfUsbTargetPipeFormatRequestForWrite

Como enviar solicitações de transferência em massa USB

Como usar o leitor contínuo para ler dados de um tubo USB

UMDF:
IUsbTargetPipeContinuousReaderCallbackReadComplete
IWDFUsbTargetPipe
IWDFUsbTargetPipe2
UsbBulkInPipe.InputStream
UsbBulkOutPipe.OutputStream

Como enviar um pedido de transferência em massa USB
WinUsb_WritePipe
WinUsb_ReadPipe

Emitir solicitações de E/S

5—Envie transferências de interrupção. Os dados são lidos para obter dados de interrupção de hardware.

Controlador do cliente Aplicativo UWP Aplicação de ambiente de trabalho do Windows
O mesmo que transferências em massa UsbInterruptInPipe.DadosRecebidos
UsbInterruptOutPipe.OutputStream

Como enviar um pedido de transferência de interrupção USB
O mesmo que transferências em massa

6—Envie transferências isócronas, usadas principalmente para dispositivos de streaming de mídia.

Driver do cliente Aplicativo UWP Aplicação de ambiente de trabalho do Windows
KMDF:
WdfUsbTargetDeviceCreateIsochUrb

Como transferir dados para terminais isócronos USB

UMDF:
Não suportado
Não suportado WinUsb_RegisterIsochBuffer
WinUsb_UnregisterIsochBuffer
WinUsb_WriteIsochPipeAsap
WinUsb_ReadIsochPipeAsap
WinUsb_WriteIsochPipe
WinUsb_ReadIsochPipe
WinUsb_GetCurrentFrameNumber
WinUsb_GetAdjustedFrameNumber

Enviar transferências isócronas USB a partir de uma aplicação de ambiente de trabalho WinUSB

7—Suspensão seletiva USB para permitir que o dispositivo entre em um estado de baixo consumo de energia e traga o dispositivo de volta ao estado de funcionamento.

Driver do cliente Aplicativo UWP Aplicação de ambiente de trabalho do Windows
KMDF:
WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS
WdfDeviceAssignS0IdleSettings

UMDF:
IWDFUsbTargetDevice::SetPowerPolicy
IWDFDevice2::AssignS0IdleSettings
IWDFDevice3::AssignS0IdleSettingsEx

Como enviar um dispositivo para suspensão seletiva
Não suportado WinUsb_SetPowerPolicy

Gerenciamento de energia WinUSB

Ver também