> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Interface com os diferentes tipos de dispositivo do GameInput

> Interface com os diferentes tipos de dispositivo do GameInput

<Note>A API define separadamente os dispositivos de mouse e teclado do `GameInput`. Esses dispositivos têm um significado especial no Windows e são abordados em outro lugar. Para obter mais informações, consulte [Desenvolvendo drivers de cliente HID de teclado e mouse](https://learn.microsoft.com/windows-hardware/drivers/hid/keyboard-and-mouse-hid-client-drivers).</Note>

O `GameInput` representa uma grande variedade de dispositivos, incluindo controles, gamepads, manches de voo, arcade sticks, volantes de corrida e controles de navegação da interface do usuário. Cada tipo de dispositivo tem sua própria interface que você pode usar para interagir com o dispositivo. Se um dispositivo de hardware aparece em uma dessas interfaces depende de o dispositivo estar em conformidade com um dos protocolos de driver existentes do Windows para controles de entrada de jogos ou ser um dispositivo HID genérico.

Para dispositivos compatíveis com XInput, a API `GameInput` enumera esses dispositivos como um controle, um gamepad e um controle de navegação da interface do usuário. O mapeamento desses dispositivos é estritamente determinado pelo protocolo, e o protocolo não oferece suporte a botões extras. Esses dispositivos também oferecem suporte a efeitos de vibração dupla ou quádrupla. Esses efeitos correspondem aos motores esquerdo e direito e aos gatilhos esquerdo e direito. Existem três protocolos de comunicação principais para o XInput: XUSB, XInputHID e o Game Input Protocol (GIP). No console, o sistema oferece suporte apenas a dispositivos GIP. Você pode encontrar mais informações sobre todos esses protocolos na [documentação da API XInput para dispositivos de hardware](https://aka.ms/gipdocs). No PC, os dispositivos devem se comunicar com o driver XInputHID. Para outros dispositivos Game Input Protocol (GIP) além de gamepads, a API `GameInput` enumera esses dispositivos como manche de voo, arcade stick, volante de corrida ou controle de navegação da interface do usuário com base nos metadados que eles apresentam na conexão. Esse comportamento vale tanto para o console quanto para o PC. Para obter mais informações, consulte a [documentação do Game Input Protocol (GIP)](https://aka.ms/gipdocs).

Para dispositivos HID, o `GameInput` oferece mais flexibilidade na forma como os dispositivos se apresentam ao sistema operacional. Essa flexibilidade significa que os dispositivos HID podem expor uma ampla gama de recursos e funcionalidades além do que os protocolos padrão de controles de jogo definem. Um volante de corrida, por exemplo, poderia se apresentar ao `GameInput` como um gamepad e um manche de voo. A lista completa de botões, interruptores e eixos disponíveis no dispositivo é definida pelo descritor de relatório HID do dispositivo e exposta por meio da interface `IGameInputReading` a partir de `GetControllerButtonState`, `GetControllerButtonCount` e das chamadas homólogas para obter eixos ou interruptores. Para mapear esses recursos para outras interfaces, como gamepad ou volante de corrida, o `GameInput` usa uma série de mapeamentos no registro do Windows. A API Windows.Gaming.Input (WGI) compartilha esses mapeamentos. Para obter mais informações, consulte [Dados de registro para controles de jogo](https://learn.microsoft.com/windows/uwp/gaming/registry-data-for-game-controllers). Um fornecedor independente de hardware (IHV) pode adicionar seus mapeamentos de registro ao caminho `HKLM\SYSTEM\CurrentControlSet\Control\GameInput\Devices` como parte da instalação do driver. A API `GameInput` adiciona periodicamente mapeamentos padrão para dispositivos comuns em versões futuras da API que ela redistribui com os jogos. Os mapeamentos de IHV têm precedência sobre os mapeamentos padrão. Você pode encontrar os mapeamentos empacotados com a API em `HKLM\SOFTWARE\Microsoft\GameInputRedist`.

<a id="seealsoSection" />

## Confira também

[Visão geral do GameInput](/pt-BR/build/core-features/common/input/overviews/input-overview)
[APIs de controle de jogo XInput](https://learn.microsoft.com/windows/win32/api/_xinput/)
[Documentação do driver Game Input Protocol (GIP) / XInputHID (download)](https://aka.ms/gipdocs)
[Dados de registro para controles de jogo](https://learn.microsoft.com/windows/uwp/gaming/registry-data-for-game-controllers)


## Related topics

- [Interface de force feedback do GameInput](/pt-BR/build/core-features/common/input/hardware/input-hardware-force-feedback.md)
- [Ferramenta de mapeamento de dispositivos e guia de testes do GameInput](/pt-BR/build/core-features/common/input/hardware/input-hardware-mapping.md)
- [Combinação do GameInput com pilhas de entrada existentes](/pt-BR/build/core-features/common/input/porting/input-porting.md)
- [Leituras do GameInput](/pt-BR/build/core-features/common/input/overviews/input-readings.md)
- [Dispositivos do GameInput](/pt-BR/build/core-features/common/input/overviews/input-devices.md)
