与不同的 GameInput 设备类型交互

注意

GameInput 鼠标和键盘设备在 API 中单独定义,并在其他位置进行涵盖,因为这些设备在 Windows 中具有特殊含义。 有关详细信息 ,请参阅开发键盘和鼠标 HID 客户端驱动程序

GameInput 表示各种设备,包括控制器、游戏板、飞行杆、街机摇杆、赛车方向盘和 UI 导航控制器。 每个设备类型都有自己的接口,可用于与设备交互。 硬件设备是否显示在其中一个接口下取决于设备是否符合游戏输入控制器的现有 Windows 驱动程序协议之一,还是通用 HID 设备。

对于 XInput 兼容设备,GameInput API 将这些设备枚举为控制器、游戏板和 UI 导航控制器。 这些设备的映射严格由协议规定,目前不支持额外的按钮。 这些设备还支持双重或四重隆重效果。 它们对应于左右电机以及左右触发器。 XInput 有三种主要线路协议:XUSB、XInputHID 和游戏输入协议 (GIP) 。 在主机上,仅支持 GIP 设备。 有关所有这些协议的详细信息,请参阅 硬件设备的 XInput API 文档。 请注意,在电脑上,最好让设备与 XInputHID 驱动程序进行交互。 对于除游戏板以外的其他游戏输入协议 (GIP) 设备,GameInput API 会根据在连接时呈现的元数据将这些设备枚举为飞行杆、街机摇杆、赛车方向盘或 UI 导航控制器。 这适用于主机和电脑。 有关详细信息,请参阅 游戏输入协议 (GIP) 文档

对于 HID 设备,GameInput 在设备向作系统呈现方式方面提供了很大的灵活性。 这意味着 HID 设备可能会公开超出标准游戏控制器协议定义的各种特性和功能。 例如,赛车方向盘设备可能会以游戏板和飞行摇杆的形式呈现给 GameInput。 设备上可用的按钮、开关和轴的完整列表由设备的 HID 报告描述符定义,并通过 IGameInputReadingGetControllerButtonState接口公开, GetControllerButtonCount 以及获取轴或开关的同源调用。 为了将这些映射映射到其他接口(如游戏板或赛车方向盘),GameInput 利用 Windows 注册表中的一系列映射。 这些映射与 Windows.Gaming.Input (WGI) API 共享。 有关详细信息,请参阅 游戏控制器的注册表数据 页。 独立硬件供应商 (IHV) 可以在驱动程序安装过程中将其注册表映射添加到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices 路径。 GameInput API 将定期添加常见设备的默认映射,这些设备具有未来版本的 API,这些版本将与游戏一起重新分发。 IHV 映射优先于默认映射。

另请参阅

GameInput 概述
XInput 游戏控制器 API
游戏输入协议 (GIP) /XInputHID 驱动程序文档 (下载)
游戏控制器的注册表数据