Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Use o driver de botão fornecido pela Microsoft para botões GPIO; caso contrário, implemente o driver que injeta dados HID no sistema operacional.
Botões (Power, Windows, volume e bloqueio de rotação) normalmente são usados para tarefas que ocorrem enquanto o teclado físico não está disponível para o usuário, em formatos como conversíveis ou tablets. Os botões se declaram para o sistema operacional como dispositivos HID fornecendo descritores de relatório de botão HID. Isso permite que o sistema interprete a finalidade e os eventos desses botões de forma padronizada. Quando o estado de um botão é alterado, esse evento é mapeado para HID Usages. Um minidriver de transporte HID relata esses eventos para drivers de nível superior que, em seguida, enviam detalhes para clientes HID no modo de usuário ou no modo kernel.
Para botões físicos de I/O de propósito geral (GPIO), o minidriver de transporte HID é um driver interno fornecido pela Microsoft que relata os eventos com base nas interrupções recebidas nos recursos de hardware definidos do GPIO.
O driver in-box não consegue atender a um botão que não está conectado a uma linha de interrupção. Para esses botões, você precisa escrever um driver que exponha o botão como um botão HID e relata alterações de estado no driver de classe HID (fornecido pela Microsoft). Seu motorista pode ser um motorista de origem HID ou um motorista de transporte HID.
Diretrizes para dar suporte a botões HID
Aqui estão alguns ponteiros gerais para ajudá-lo a decidir qual implementação você deve seguir se estiver criando botões HID.
Usar o driver de botão in-box fornecido pela Microsoft
Se você estiver implementando um botão GPIO, descreva o botão no ACPI do sistema para que o Windows possa carregar o driver embutido, Hidinterrupt.sys, como o driver de botão que reporta eventos ao sistema operacional.
- Dispositivo de botão ACPI
- Comportamento do botão
- Botões de exemplo ACPI para Windows 10 Core Editions
A Microsoft incentiva você a usar os minidrivers de transporte inclusos sempre que possível.
Escrever um driver de origem HID no modo kernel
Se você estiver implementando um botão não GPIO, como um fluxo de dados no formato HID que precisa ser injetado por outro componente de software, você poderá optar por escrever um driver no modo kernel. A partir do Windows 10, você pode escrever um driver de origem HID chamando interfaces de programação que se comunicam com o VHF (Virtual HID Framework) e obtém e define relatórios HID de e para o driver de classe HID.
- Como gravar um driver de origem HID que interage com o VHF (Virtual HID Framework)
- Referência da Estrutura HID Virtual
Como alternativa, você pode escrever um minidriver de transporte HID em modo kernel, que é compatível com versões anteriores do Windows. No entanto, não recomendamos essa abordagem porque minidrivers de transporte KMDF HID mal escritos podem falhar no sistema.
Escrever um Minidriver HID da UMDF
Se você estiver implementando um botão que não seja GPIO, em vez de usar o modelo anterior para desenvolver um driver fonte HID, poderá desenvolver um minidriver de transporte HID no modo de usuário. Esses drivers são mais fáceis de desenvolver do que os drivers em modo kernel, e os erros neste driver não causam uma falha geral do sistema.
Drivers universais do Windows para botões HID
A partir do Windows 10, as interfaces de programação do driver HID fazem parte das edições baseadas em OneCoreUAP do Windows. Usando esse conjunto comum de interfaces, você pode escrever um driver de botão usando o Framework HID Virtual ou Interfaces de Minidrivers de Transporte. Esses drivers serão executados no Windows 10 para edições da área de trabalho (Home, Pro, Enterprise e Education) e no Windows 10 Mobile, bem como em outras versões do Windows 10.
Para obter diretrizes passo a passo, consulte Como usar um arquivo INF universal.