Windows.Devices.Usb Namespace
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Esse namespace define Windows Runtime classes que um aplicativo UWP pode usar para se comunicar com dispositivos WinUSB. Esses dispositivos são manipulados pelo driver de caixa de entrada winusb.sys
e são identificados por um Descritor de SO da Microsoft específico.
Um dispositivo WinUSB válido terá uma ID compatível de USB\MS_COMP_WINUSB
Suporte ao dispositivo
Esse namespace dá suporte à maioria dos dispositivos WinUSB. No entanto, ele não fornece acesso a dispositivos USB com classes de dispositivo do seguinte:
- Áudio (
0x01
) - HID (
0x03
) - Imagem (
0x06
) - Impressora (
0x07
) - Armazenamento em massa (
0x08
) - Cartão Inteligente (
0x0B
) - Áudio/Vídeo (
0x10
) - Controlador sem fio (
0xE0
)
Funcionalidades do dispositivo USB
Um aplicativo UWP que acessa um dispositivo USB deve incluir dados de funcionalidade de dispositivo específicos no nó de funcionalidades de seu manifesto. Esses dados identificam o dispositivo e sua finalidade (ou função). Observe que alguns dispositivos podem ter várias funções.
Desde Windows 10, versão 1809 (Atualização de outubro de 2018)
<DeviceCapability Name="usb"/>
Antes de Windows 10, versão 1809 (Atualização de outubro de 2018)
Desde 1809, o ProductId vendorId/ e o tipo de função não precisam mais ser especificados e serão ignorados em sistemas mais recentes. Se estiver direcionando sistemas abaixo de 1809, consulte recursos de dispositivo USB herdados.
Solução de problemas
- Verifique se a funcionalidade USB (
usb
) está no manifesto do aplicativo. - Verifique se o usuário concedeu permissão para o aplicativo utilizar dispositivos USB.
- Valide se o tipo de dispositivo não é designado como inacessível.
- Os dispositivos internos do computador (
DEVPKEY_Device_InLocalMachineContainer == TRUE
) geralmente não são acessíveis, a menos que sejam executados em um SKU com o modo elowLevelDevices
a funcionalidade inseridos. - Os dispositivos com pilhas que contêm drivers de filtro superior/inferior geralmente não são acessíveis. Às vezes, eles são adicionados por terceiros para habilitar funcionalidades adicionais para hardware personalizado.
- A restrição do dispositivo é parcialmente determinada por
winusb.sys
durante a enumeração do dispositivo, que pode definir a propriedadeDEVPKEY_DeviceInterface_Restricted
de interface do dispositivo comoTRUE
na InterfaceGUID_DEVINTERFACE_WINUSB_WINRT
do Dispositivo WinUSB com base na presença de filtros de dispositivo/classe. - A presença de drivers UpperFilter/LowerFilter do dispositivo pode ser determinada usando DeviceManager procurando
UpperFilters
propriedades eLowerFilters
. - A presença dos drivers UpperFilter/LowerFilter da classe WinUSB pode ser determinada usando DeviceManager procurando
Class upper filters
propriedades eClass lower filters
. - As propriedades da Interface do Dispositivo podem ser inspecionadas chamando
CM_Get_Device_Interface_Property
ondepszDeviceInterface
é a mesma cadeia de caracteres que seria passada para FromIdAsync.
- A restrição do dispositivo é parcialmente determinada por
- Essas restrições podem ser ignoradas ao criar um dispositivo personalizado trabalhando com o driver-desenvolvedor para criar um aplicativo de suporte de hardware
Classes
UsbBulkInEndpointDescriptor |
O descritor de ponto de extremidade para um ponto de extremidade USB em massa no ponto de extremidade. O descritor especifica o tipo de ponto de extremidade, a direção, o número e também o número máximo de bytes que podem ser lidos do ponto de extremidade, em uma única transferência. |
UsbBulkInPipe |
Representa o pipe que o driver USB subjacente abre para se comunicar com um ponto de extremidade USB em massa NO do dispositivo. O aplicativo pode obter um fluxo de entrada do pipe e os dados de acesso estão sendo lidos do ponto de extremidade. |
UsbBulkOutEndpointDescriptor |
O descritor de ponto de extremidade para um ponto de extremidade USB bulk OUT. O descritor especifica o tipo de ponto de extremidade, a direção, o número e também o número máximo de bytes que podem ser gravados no ponto de extremidade, em uma única transferência. |
UsbBulkOutPipe |
Representa o pipe que o driver USB subjacente abre para se comunicar com um ponto de extremidade USB bulk OUT do dispositivo. O objeto fornece acesso a um fluxo de saída no qual o aplicativo pode gravar dados para enviar para o ponto de extremidade. |
UsbConfiguration |
Fornece informações sobre uma configuração USB, seus descritores e as interfaces definidas dentro dessa configuração. Para obter uma explicação de uma configuração USB, consulte Seção 9.6.3 na especificação do Barramento Serial Universal (USB). |
UsbConfigurationDescriptor |
Deriva informações dos primeiros 9 bytes de um descritor de configuração USB. As informações incluem os recursos de energia do dispositivo quando a configuração estiver ativa e o número de interfaces incluídas nessa configuração. Para obter uma explicação de um descritor de configuração, Seção 9.6.3 Especificação universal do barramento serial. Para obter informações sobre campos de descritor, consulte:
|
UsbControlRequestType |
Fornece informações sobre a transferência de controle USB, o tipo de solicitação de controle, se os dados são enviados de ou para o host e o destinatário da solicitação no dispositivo. |
UsbDescriptor |
Fornece informações sobre o tipo de descritor, seu tamanho (em bytes) e obtém os dados do descritor. |
UsbDevice |
Representa um dispositivo USB. O objeto fornece métodos e propriedades que um aplicativo pode usar para enumerar dispositivos WinUSB e enviar transferências de controle IN e OUT. |
UsbDeviceClass |
Fornece uma maneira de o aplicativo obter uma cadeia de caracteres AQS (Sintaxe de Consulta Avançada) especificando o código de classe, o código de subclasse e o código de protocolo definido pelo dispositivo. As propriedades nessa classe são passadas na chamada para GetDeviceClassSelector. |
UsbDeviceClasses |
Fornece uma maneira de recuperar um objeto UsbDeviceClass com base na classe de dispositivo USB de um dispositivo. As propriedades definidas nessa classe representam as classes de dispositivo USB com suporte e retornam objetos UsbDeviceClass . Para obter informações sobre classes de dispositivo USB, consulte o site usb oficial para documentos de especificação de classe aprovados. |
UsbDeviceDescriptor |
Deriva informações do descritor de dispositivo USB do dispositivo. Para obter uma explicação do descritor do dispositivo, consulte Tabela 9.8 na Especificação universal do barramento serial. |
UsbEndpointDescriptor |
Deriva informações do descritor de ponto de extremidade USB do ponto de extremidade, como tipo, direção e número do ponto de extremidade. Esse objeto também obtém os descritores de ponto de extremidade específicos com base no tipo de ponto de extremidade. Para obter uma explicação de um descritor de ponto de extremidade, consulte a Seção 9.6.5 na Especificação universal do barramento serial:
|
UsbInterface |
Fornece informações sobre a interface USB, incluindo seus pontos de extremidade, o número de configurações alternativas compatíveis com a interface e obtém todo o descritor definido para essas configurações. Ele também obtém pipes associados aos pontos de extremidade aos quais a interface dá suporte. |
UsbInterfaceDescriptor |
Descreve uma configuração alternativa USB (de uma interface) em um descritor de interface. Para obter uma explicação de um descritor de interface, consulte Seção 9.6.5 na Especificação universal do barramento serial:
|
UsbInterfaceSetting |
Fornece informações sobre uma configuração alternativa e selecione essa configuração. O aplicativo pode obter os descritores da interface USB para a configuração e seus pontos de extremidade e determinar se essa configuração está selecionada no momento. |
UsbInterruptInEndpointDescriptor |
O descritor de ponto de extremidade para uma interrupção USB no ponto de extremidade. O descritor especifica o tipo de ponto de extremidade, a direção, o número e também o número máximo de bytes que podem ser lidos do ponto de extremidade, em uma única transferência. O aplicativo também pode obter informações sobre a frequência com que o host sonda o ponto de extremidade em busca de dados. |
UsbInterruptInEventArgs |
Representa o objeto que é passado como um parâmetro para o manipulador de eventos do evento DataReceived . |
UsbInterruptInPipe |
Representa o pipe que o driver USB subjacente abre para se comunicar com uma interrupção USB no ponto de extremidade do dispositivo. O objeto também permite que o aplicativo especifique um manipulador de eventos. Esse manipulador que é invocado quando os dados são lidos do ponto de extremidade. |
UsbInterruptOutEndpointDescriptor |
O descritor de ponto de extremidade para um ponto de extremidade DE SAÍDA de interrupção USB. O descritor especifica o tipo de ponto de extremidade, a direção, o número e também o número máximo de bytes que podem ser gravados no ponto de extremidade, em uma única transferência. O aplicativo também pode obter informações sobre a frequência com que o host sonda o ponto de extremidade para enviar dados. |
UsbInterruptOutPipe |
Representa o pipe que o driver USB subjacente abre para se comunicar com um ponto de extremidade DE SAÍDA de interrupção USB do dispositivo. O objeto fornece acesso a um fluxo de saída no qual o aplicativo pode gravar dados para enviar para o ponto de extremidade. |
UsbSetupPacket |
Descreve o pacote de instalação de uma transferência de controle USB. Para obter uma explicação do pacote de instalação, consulte Tabela 9.2 na especificação do Barramento Serial Universal (USB). |
Enumerações
UsbControlRecipient |
Define constantes que indicam o destinatário de uma transferência de controle USB. O destinatário é definido no pacote de instalação da solicitação de controle. Confira a Tabela 9.2 da seção 9.3 da especificação do Barramento Serial Universal (USB) (www.usb.org). |
UsbControlTransferType |
Define constantes que indicam o tipo de transferência de controle USB: padrão, classe ou fornecedor. |
UsbEndpointType |
Define constantes que indicam o tipo de ponto de extremidade USB: controle, massa, isócrono ou interrupção. |
UsbReadOptions |
Define constantes para sinalizadores de configuração que podem ser definidos para um pipe USB que o host abre para um ponto de extremidade USB bulk IN. |
UsbTransferDirection |
Define constantes que indicam a direção da transferência USB: transferências IN ou OUT. |
UsbWriteOptions |
Define constantes para sinalizadores de configuração que podem ser definidos para um pipe USB que o host abre para um ponto de extremidade USB OUT. |