Desenvolver drivers de dispositivo Windows para HID (Dispositivos de Interface Humana)

Aprenda a desenvolver drivers de dispositivo Windows para HID (Dispositivos de Interface Humana). HID é uma definição de classe de dispositivo para drivers USB genéricos para dar suporte a dispositivos HID, como teclados, mouses, controladores de jogos e assim por diante. Antes do HID, os dispositivos só podiam utilizar protocolos estritamente definidos para mouses e teclados. A inovação de hardware exigia sobrecarregar os dados em um protocolo existente ou criar hardware fora do padrão com seu próprio driver especializado. A HID fornece suporte para dispositivos de modo de inicialização enquanto adiciona suporte para inovação por meio de interfaces extensíveis, padronizadas e facilmente programáveis.

Os dispositivos HID incluem displays alfanuméricos, leitores de código de barras, alto-falantes, fones de ouvido, displays auxiliares, sensores e muitos outros. Os fornecedores de hardware também usam HID para seus dispositivos proprietários.

O HID começou com USB, mas foi projetado para ser independente de barramento. Ele foi projetado para dispositivos de baixa latência e baixa largura de banda, mas com flexibilidade para especificar a taxa no transporte subjacente. O USB-IF ratificou a especificação para HID sobre USB em 1996. O suporte para HID em relação a outros transportes logo se seguiu. Detalhes sobre os transportes com suporte no momento podem ser encontrados em Transportes HID com suporte no Windows. Transportes específicos do fornecedor também são permitidos por meio de motoristas de transporte personalizados.

Conceitos HID

O HID consiste em dois conceitos fundamentais, um descritor de relatório e relatórios. Os relatórios são os dados reais trocados entre um dispositivo e um cliente de software. O descritor de relatório descreve o formato e o significado dos dados aos quais o dispositivo dá suporte.

Relatórios

Aplicativos e dispositivos HID trocam dados por meio de relatórios. Existem três tipos de relatório:

Tipo de relatório Descrição
Relatório de entrada Dados enviados do dispositivo HID para o aplicativo, normalmente quando o estado de um controle é alterado.
Relatório de saída Dados enviados do aplicativo para o dispositivo HID, por exemplo, para os LEDs em um teclado.
Relatório de recursos Dados que podem ser lidos e gravados manualmente e normalmente estão relacionados a informações de configuração.

Cada coleção de nível superior definida em um descritor de relatório pode conter zero ou mais relatórios de cada tipo.

Tabelas de uso

O grupo de trabalho USB-IF publica tabelas de uso de HID que fazem parte dos descritores de relatório que descrevem o que os dispositivos HID podem fazer. Essas tabelas de uso HID contêm uma lista com descrições de usos que descrevem o significado pretendido e o uso de um item específico no descritor de relatório. Por exemplo, um uso é definido para o botão esquerdo de um mouse. O descritor de relatório pode definir onde em um relatório um aplicativo pode encontrar o estado atual do botão esquerdo do mouse. As tabelas de uso são divididas em vários espaços de nomes, chamados de páginas de uso. Cada página de uso descreve um conjunto de usos relacionados para ajudar a organizar o documento. A combinação de uma página de uso e uma página de uso define a ID de uso que identifica exclusivamente um uso específico nas tabelas de uso.

Confira também