> ## 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.

# 与不同 GameInput 设备类型交互

> 与不同 GameInput 设备类型交互

<Note>该 API 将 `GameInput` 的鼠标和键盘设备分开定义。这些设备在 Windows 中有特殊含义，具体在其他文档中介绍。有关详细信息，请参阅[开发键盘和鼠标 HID 客户端驱动程序](https://learn.microsoft.com/windows-hardware/drivers/hid/keyboard-and-mouse-hid-client-drivers)。</Note>

`GameInput` 表示各种各样的设备，包括控制器、游戏手柄、飞行操纵杆、街机摇杆、赛车方向盘和 UI 导航控制器。每种设备类型都有可用于与设备交互的独立接口。硬件设备是否会以其中一种接口的形式出现，取决于该设备是遵循现有的 Windows 游戏输入控制器驱动协议，还是通用 HID 设备。

对于兼容 XInput 的设备，`GameInput` API 将它们枚举为控制器、游戏手柄和 UI 导航控制器。这些设备的映射严格由协议规定，协议不支持额外的按键。这些设备还支持双振动或四振动效果。这些效果对应左右电机以及左右扳机。XInput 的主要有三种线路协议：XUSB、XInputHID 和 Game Input Protocol (GIP)。在主机上，系统仅支持 GIP 设备。有关所有这些协议的更多信息，请参阅[针对硬件设备的 XInput API 文档](https://aka.ms/gipdocs)。在 PC 上，设备应通过 XInputHID 驱动进行交互。除游戏手柄之外的其他 Game Input Protocol (GIP) 设备，`GameInput` API 会根据其在连接时呈现的元数据，将它们枚举为飞行操纵杆、街机摇杆、赛车方向盘或 UI 导航控制器。此行为在主机与 PC 上都成立。有关详细信息，请参阅 [Game Input Protocol (GIP) 文档](https://aka.ms/gipdocs)。

对于 HID 设备，`GameInput` 在设备呈现给操作系统的方式上提供更多的灵活性。这种灵活性意味着 HID 设备有可能公开标准游戏控制器协议所定义之外的广泛特性和能力。例如，一款赛车方向盘设备有可能将自身呈现给 `GameInput` 为游戏手柄和飞行操纵杆。该设备上可用的完整按键、开关和轴列表由设备的 HID 报告描述符定义，并通过 `IGameInputReading` 接口的 `GetControllerButtonState`、`GetControllerButtonCount` 以及用于获取轴或开关的同类调用公开。为将这些特性映射到诸如游戏手柄或赛车方向盘等其他接口，`GameInput` 使用了 Windows 注册表中的一系列映射。Windows.Gaming.Input (WGI) API 与其共享这些映射。有关详细信息，请参阅[游戏控制器的注册表数据](https://learn.microsoft.com/windows/uwp/gaming/registry-data-for-game-controllers)。独立硬件供应商 (IHV) 可以在其驱动程序安装过程中将它们的注册表映射添加到 `HKLM\SYSTEM\CurrentControlSet\Control\GameInput\Devices` 路径下。在随游戏一起分发的未来 API 版本中，`GameInput` API 会定期为常见设备添加默认映射。IHV 映射的优先级高于默认映射。可在 `HKLM\SOFTWARE\Microsoft\GameInputRedist` 找到随 API 一起打包的映射。

<a id="seealsoSection" />

## 另请参阅

[GameInput 概述](/build/core-features/common/input/overviews/input-overview)
[XInput 游戏控制器 API](https://learn.microsoft.com/windows/win32/api/_xinput/)
[Game Input Protocol (GIP) / XInputHID 驱动程序文档（下载）](https://aka.ms/gipdocs)
[游戏控制器的注册表数据](https://learn.microsoft.com/windows/uwp/gaming/registry-data-for-game-controllers)


## Related topics

- [GameInput 力反馈接口](/zh-CN/build/core-features/common/input/hardware/input-hardware-force-feedback.md)
- [GameInput 硬件：力反馈、触觉与传感器](/zh-CN/build/core-features/common/input/hardware/index.md)
- [GameInputKind](/zh-CN/reference/input/gameinput/enums/gameinputkind.md)
- [GameInput](/zh-CN/reference/input/gameinput/gameinput_members.md)
- [GameInputLabel](/zh-CN/reference/input/gameinput/enums/gameinputlabel.md)
