Introdução ao desenvolvimento usb
Um dispositivo USB (Barramento Serial Universal) define seus recursos 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 Documentos do Barramento Serial Universal.
Nesta seção
Tópico | Descrição |
---|---|
Layout do dispositivo USB | Um dispositivo USB define seus recursos 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 descritores de dispositivo, configuração, interface e ponto de extremidade e maneiras de recuperá-los de um dispositivo USB. |
Pontos de extremidade USB e seus pipes | Um dispositivo USB tem pontos de extremidade usados para transferências de dados. No lado do host, os pontos de extremidade são representados por pipes. Este tópico diferencia esses dois termos. |
USB no Windows – perguntas frequentes | Este tópico apresenta perguntas frequentes para desenvolvedores de driver 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.
Driver do cliente | Aplicativo UWP | Aplicativo da área de trabalho do Windows |
---|---|---|
KMDF: WdfUsbTargetDeviceCreateWithParameters UMDF: IWDFUsbTargetDevice |
Usbdevice Como se conectar a um dispositivo USB |
WinUsb_Initialize Escrever um aplicativo da área de trabalho do Windows com base no modelo do WinUSB |
Recuperação de descritor USB para obter informações sobre as configurações do dispositivo, interfaces, configurações e seus pontos de extremidade.
2 — Configure o dispositivo para selecionar uma configuração USB ativa e uma configuração por interface.
Driver do cliente | Aplicativo UWP | Aplicativo da área 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: Não há suporte para a seleção de configuração IWDFUsbInterface::SelectSetting |
UsbInterfaceSetting.SelectSettingAsync Como selecionar uma configuração de interface USB |
WinUsb_SetCurrentAlternateSetting |
3 – Enviar transferências de controle para configurar o dispositivo e executar comandos de fornecedor específicos para determinado dispositivo.
4 – Enviar transferências em massa, normalmente usadas por dispositivos de armazenamento em massa que transferem uma grande quantidade de dados.
5 – Enviar transferências de interrupção. Os dados são lidos para recuperar dados de interrupção de hardware.
Driver do cliente | Aplicativo UWP | Aplicativo da área de trabalho do Windows |
---|---|---|
O mesmo que transferências em massa | UsbInterruptInPipe.DataReceived UsbInterruptOutPipe.OutputStream Como enviar uma solicitação de transferência de interrupção USB |
O mesmo que transferências em massa |
6 – Enviar transferências isocronas, usadas principalmente para dispositivos de streaming de mídia.
Driver do cliente | Aplicativo UWP | Aplicativo da área de trabalho do Windows |
---|---|---|
KMDF: WdfUsbTargetDeviceCreateIsochUrb Como transferir dados para pontos de extremidade isócronos USB UMDF: Sem suporte |
Sem suporte | WinUsb_RegisterIsochBuffer WinUsb_UnregisterIsochBuffer WinUsb_WriteIsochPipeAsap WinUsb_ReadIsochPipeAsap WinUsb_WriteIsochPipe WinUsb_ReadIsochPipe WinUsb_GetCurrentFrameNumber WinUsb_GetAdjustedFrameNumber Enviando transferências isocronas USB de um aplicativo da área de trabalho do WinUSB |
7 — Suspensão seletiva usb para permitir que o dispositivo insira um estado de baixa potência e traga o dispositivo de volta ao estado de trabalho.
Driver do cliente | Aplicativo UWP | Aplicativo da área de trabalho do Windows |
---|---|---|
KMDF: WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS WdfDeviceAssignS0IdleSettings UMDF: IWDFUsbTargetDevice::SetPowerPolicy IWDFDevice2::AssignS0IdleSettings IWDFDevice3::AssignS0IdleSettingsEx Como enviar um dispositivo para a suspensão seletiva |
Sem suporte | WinUsb_SetPowerPolicy Gerenciamento de Energia do WinUSB |