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

# GameInput

GameInput API 用于从各种设备（例如游戏控制器、飞行摇杆、赛车方向盘和触摸输入）捕获人机输入。

<Note>此页面记录当前（最新）的 GameInput API。每个成员的版本历史都记录在各自的参考页面中。仅存在于较旧 API 版本中的成员列在下面的 [已移除的成员](#removed-members) 部分。请注意，API 的较新运行时支持所有可用版本的 API，因此仍可以将已移除的成员与较旧版本的头文件一起使用。</Note>

## 接口

| 接口                                                                                                                                 | 说明                                 |
| ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------- |
| [IGameInputDevice](/reference/input/gameinput/interfaces/igameinputdevice/igameinputdevice)                                        | 定义输入设备。                            |
| [IGameInputDispatcher](/reference/input/gameinput/interfaces/IGameInputDispatcher/igameinputdispatcher)                            | 提供对由 GameInput API 管理的后台任务调度的手动控制。 |
| [IGameInputForceFeedbackEffect](/reference/input/gameinput/interfaces/igameinputforcefeedbackeffect/igameinputforcefeedbackeffect) | 描述兼容输入设备上的力反馈效果。                   |
| [IGameInputMapper](/reference/input/gameinput/interfaces/igameinputmapper/igameinputmapper)                                        | 提供关于 GameInput 如何映射设备的信息。          |
| [IGameInputRawDeviceReport](/reference/input/gameinput/interfaces/igameinputrawdevicereport/igameinputrawdevicereport)             | 表示传递给输入设备或来自输入设备的原始字节缓冲区。          |
| [IGameInputReading](/reference/input/gameinput/interfaces/igameinputreading/igameinputreading)                                     | 包含单次输入更新的数据。                       |
| [IGameInput](/reference/input/gameinput/interfaces/igameinput/igameinput)                                                          | 提供对设备输入流访问的每进程单例。                  |

## 函数

| 函数                                                                                                      | 说明                             |
| ------------------------------------------------------------------------------------------------------- | ------------------------------ |
| [GameInputCreate](/reference/input/gameinput/functions/gameinputcreate)                                 | 检索 IGameInput 接口的实例。           |
| [GameInputDeviceCallback](/reference/input/gameinput/functions/gameinputdevicecallback)                 | 定义设备连接和断开事件的回调。                |
| [GameInputKeyboardLayoutCallback](/reference/input/gameinput/functions/gameinputkeyboardlayoutcallback) | 定义键盘布局更改事件的回调。                 |
| [GameInputReadingCallback](/reference/input/gameinput/functions/gameinputreadingcallback)               | 定义新读数到达事件的回调。                  |
| [GameInputSystemButtonCallback](/reference/input/gameinput/functions/gameinputsystembuttoncallback)     | 定义 Guide 或 Share 按钮按下和释放事件的回调。 |

## 结构

| 结构                                                                                                                | 说明                 |
| ----------------------------------------------------------------------------------------------------------------- | ------------------ |
| [GameInputArcadeStickInfo](/reference/input/gameinput/structs/gameinputarcadestickinfo)                           | 详细描述街机摇杆的特性。       |
| [GameInputArcadeStickState](/reference/input/gameinput/structs/gameinputarcadestickstate)                         | 提供街机摇杆的当前状态。       |
| [GameInputAxisMapping](/reference/input/gameinput/structs/gameinputaxismapping)                                   | 描述某个轴如何映射到控制器。     |
| [GameInputButtonMapping](/reference/input/gameinput/structs/gameinputbuttonmapping)                               | 描述某个按钮如何映射到控制器。    |
| [GameInputControllerInfo](/reference/input/gameinput/structs/gameinputcontrollerinfo)                             | 详细描述控制器的特性。        |
| [GameInputControllerSwitchInfo](/reference/input/gameinput/structs/gameinputcontrollerswitchinfo)                 | 指定输入设备上的一个开关。      |
| [GameInputDeviceInfo](/reference/input/gameinput/structs/gameinputdeviceinfo)                                     | 包含有关输入设备的全面信息。     |
| [GameInputFlightStickInfo](/reference/input/gameinput/structs/gameinputflightstickinfo)                           | 详细描述飞行摇杆的特性。       |
| [GameInputFlightStickState](/reference/input/gameinput/structs/gameinputflightstickstate)                         | 提供飞行摇杆的当前状态。       |
| [GameInputForceFeedbackConditionParams](/reference/input/gameinput/structs/gameinputforcefeedbackconditionparams) | 定义力反馈效果的某些物理方面。    |
| [GameInputForceFeedbackConstantParams](/reference/input/gameinput/structs/gameinputforcefeedbackconstantparams)   | 定义力反馈效果的恒定物理方面。    |
| [GameInputForceFeedbackEnvelope](/reference/input/gameinput/structs/gameinputforcefeedbackenvelope)               | 定义修改力反馈效果的包络。      |
| [GameInputForceFeedbackMagnitude](/reference/input/gameinput/structs/gameinputforcefeedbackmagnitude)             | 定义力反馈效果施加的力的幅度。    |
| [GameInputForceFeedbackMotorInfo](/reference/input/gameinput/structs/gameinputforcefeedbackmotorinfo)             | 提供有关力反馈电机的信息。      |
| [GameInputForceFeedbackParams](/reference/input/gameinput/structs/gameinputforcefeedbackparams)                   | 定义力反馈效果的 API 支持属性。 |
| [GameInputForceFeedbackPeriodicParams](/reference/input/gameinput/structs/gameinputforcefeedbackperiodicparams)   | 定义周期性力反馈效果的参数。     |
| [GameInputForceFeedbackRampParams](/reference/input/gameinput/structs/gameinputforcefeedbackrampparams)           | 定义斜坡力反馈效果的参数。      |
| [GameInputGamepadInfo](/reference/input/gameinput/structs/gameinputgamepadinfo)                                   | 详细描述游戏手柄的特性。       |
| [GameInputGamepadState](/reference/input/gameinput/structs/gameinputgamepadstate)                                 | 提供游戏手柄输入设备的当前状态。   |
| [GameInputHapticInfo](/reference/input/gameinput/structs/gameinputhapticinfo)                                     | 详细描述触觉反馈电机的特性。     |
| [GameInputKeyState](/reference/input/gameinput/structs/gameinputkeystate)                                         | 提供键盘上某个按键的当前状态。    |
| [GameInputKeyboardInfo](/reference/input/gameinput/structs/gameinputkeyboardinfo)                                 | 详细描述键盘的特性。         |
| [GameInputMouseInfo](/reference/input/gameinput/structs/gameinputmouseinfo)                                       | 详细描述鼠标的特性。         |
| [GameInputMouseState](/reference/input/gameinput/structs/gameinputmousestate)                                     | 提供鼠标的当前状态。         |
| [GameInputRacingWheelInfo](/reference/input/gameinput/structs/gameinputracingwheelinfo)                           | 详细描述赛车方向盘的特性。      |
| [GameInputRacingWheelState](/reference/input/gameinput/structs/gameinputracingwheelstate)                         | 提供赛车方向盘的当前状态。      |
| [GameInputRawDeviceReportInfo](/reference/input/gameinput/structs/gameinputrawdevicereportinfo)                   | 描述原始设备报告。          |
| [GameInputRumbleParams](/reference/input/gameinput/structs/gameinputrumbleparams)                                 | 描述控制器产生的震动效果。      |
| [GameInputSensorsInfo](/reference/input/gameinput/structs/gameinputsensorsinfo)                                   | 详细描述可用传感器的特性。      |
| [GameInputSensorsState](/reference/input/gameinput/structs/gameinputsensorsstate)                                 | 提供设备传感器的当前状态。      |
| [GameInputUsage](/reference/input/gameinput/structs/gameinputusage)                                               | 描述特定的 HID 用法。      |
| [GameInputVersion](/reference/input/gameinput/structs/gameinputversion)                                           | 描述由四部分组成的版本号。      |

## 枚举

| 枚举                                                                                                    | 说明                         |
| ----------------------------------------------------------------------------------------------------- | -------------------------- |
| [GameInputArcadeStickButtons](/reference/input/gameinput/enums/gameinputarcadestickbuttons)           | 枚举来自街机摇杆的输入。               |
| [GameInputDeviceFamily](/reference/input/gameinput/enums/gameinputdevicefamily)                       | 枚举输入设备的系列。                 |
| [GameInputDeviceStatus](/reference/input/gameinput/enums/gameinputdevicestatus)                       | 枚举输入设备可能处于的状态。             |
| [GameInputElementKind](/reference/input/gameinput/enums/gameinputelementkind)                         | 枚举给定输入的元素类型。               |
| [GameInputEnumerationKind](/reference/input/gameinput/enums/gameinputenumerationkind)                 | 枚举用于枚举输入设备的行为类型。           |
| [GameInputFeedbackAxes](/reference/input/gameinput/enums/gameinputfeedbackaxes)                       | 枚举输入设备上可用的力反馈电机的方向类型。      |
| [GameInputFeedbackEffectState](/reference/input/gameinput/enums/gameinputfeedbackeffectstate)         | 枚举力反馈效果的状态。                |
| [GameInputFlightStickAxes](/reference/input/gameinput/enums/gameinputflightstickaxes)                 | 枚举飞行摇杆的轴。                  |
| [GameInputFlightStickButtons](/reference/input/gameinput/enums/gameinputflightstickbuttons)           | 枚举飞行摇杆按钮。                  |
| [GameInputFocusPolicy](/reference/input/gameinput/enums/gameinputfocuspolicy)                         | 枚举输入设备的焦点策略。               |
| [GameInputForceFeedbackEffectKind](/reference/input/gameinput/enums/gameinputforcefeedbackeffectkind) | 枚举可应用于力反馈效果的“幅度随时间变化”效果类型。 |
| [GameInputGamepadAxes](/reference/input/gameinput/enums/gameinputgamepadaxes)                         | 枚举游戏手柄的轴。                  |
| [GameInputGamepadButtons](/reference/input/gameinput/enums/gameinputgamepadbuttons)                   | 枚举游戏手柄按钮，包括方向键 (D-pad)。    |
| [GameInputKeyboardKind](/reference/input/gameinput/enums/gameinputkeyboardkind)                       | 按键位布局枚举键盘类型。               |
| [GameInputKind](/reference/input/gameinput/enums/gameinputkind)                                       | 枚举有效的 GameInput 设备类型。      |
| [GameInputLabel](/reference/input/gameinput/enums/gameinputlabel)                                     | 枚举支持的按钮标签。                 |
| [GameInputMouseButtons](/reference/input/gameinput/enums/gameinputmousebuttons)                       | 枚举鼠标按钮。                    |
| [GameInputMousePositions](/reference/input/gameinput/enums/gameInputmousepositions)                   | 枚举鼠标定位模式。                  |
| [GameInputRacingWheelAxes](/reference/input/gameinput/enums/gameinputracingwheelaxes)                 | 枚举赛车方向盘上的轴。                |
| [GameInputRacingWheelButtons](/reference/input/gameinput/enums/gameinputracingwheelbuttons)           | 枚举赛车方向盘上的按钮。               |
| [GameInputRawDeviceReportKind](/reference/input/gameinput/enums/gameinputrawdevicereportkind)         | 枚举原始设备报告的类型。               |
| [GameInputRumbleMotors](/reference/input/gameinput/enums/gameinputrumblemotors)                       | 枚举输入设备上受 API 支持的震动电机。      |
| [GameInputSensorAccuracy](/reference/input/gameinput/enums/gameinputsensoraccuracy)                   | 枚举传感器的精度级别。                |
| [GameInputSensorsKind](/reference/input/gameinput/enums/gameinputsensorskind)                         | 枚举有效的 GameInput 传感器类型。     |
| [GameInputSwitchKind](/reference/input/gameinput/enums/gameinputswitchkind)                           | 枚举输入设备支持的开关类型。             |
| [GameInputSwitchPosition](/reference/input/gameinput/enums/gameinputswitchposition)                   | 枚举输入设备上开关的位置。              |
| [GameInputSystemButtons](/reference/input/gameinput/enums/gameinputsystembuttons)                     | 枚举用于控制系统的按钮。               |

## 已移除的成员

以下成员存在于较旧的 API 版本中，但已从当前 API 中移除。有关每个已移除成员的完整文档，请参阅 [已弃用的 GameInput API 成员](/reference/input/gameinput/deprecated/gameinput_deprecated_members)。

### 已移除的接口

没有接口被永久移除。`IGameInputRawDeviceReport` 在 v1 和 v2 中不存在，但已在当前 API 中重新引入。

### 已移除的函数

| 函数                                                                                                           | 最后版本 | 说明                                                               |
| ------------------------------------------------------------------------------------------------------------ | ---- | ---------------------------------------------------------------- |
| [GameInputGuideButtonCallback](/reference/input/gameinput/deprecated/functions/gameinputguidebuttoncallback) | v0   | 用于 Guide 按钮事件的、由游戏标题定义的回调。已被 `GameInputSystemButtonCallback` 替代。 |

### 已移除的结构

| 结构                                                                                                                         | 最后版本 | 说明                                              |
| -------------------------------------------------------------------------------------------------------------------------- | ---- | ----------------------------------------------- |
| [GameInputBatteryState](/reference/input/gameinput/deprecated/structs/gameinputbatterystate)                               | v0   | 描述输入设备的电池状态。                                    |
| [GameInputControllerAxisInfo](/reference/input/gameinput/deprecated/structs/gameinputcontrolleraxisinfo)                   | v2   | 描述输入设备上的轴。已被 `GameInputControllerInfo` 中的字段取代。  |
| [GameInputControllerButtonInfo](/reference/input/gameinput/deprecated/structs/gameinputcontrollerbuttoninfo)               | v2   | 描述输入设备上的按钮。已被 `GameInputControllerInfo` 中的字段取代。 |
| [GameInputHapticFeedbackMotorInfo](/reference/input/gameinput/deprecated/structs/gameinputhapticfeedbackmotorinfo)         | v0   | 描述触觉反馈电机。已被 `GameInputHapticInfo` 取代。           |
| [GameInputHapticFeedbackParams](/reference/input/gameinput/deprecated/structs/gameinputhapticfeedbackparams)               | v0   | 描述触觉反馈效果。                                       |
| [GameInputHapticWaveformInfo](/reference/input/gameinput/deprecated/structs/gameinputhapticwaveforminfo)                   | v0   | 描述触觉反馈效果的特征。                                    |
| [GameInputMotionInfo](/reference/input/gameinput/deprecated/structs/gameinputmotioninfo)                                   | v0   | 描述启用了动作的输入设备的可测量属性。                             |
| [GameInputMotionState](/reference/input/gameinput/deprecated/structs/gameinputmotionstate)                                 | v0   | 描述动作输入的状态。                                      |
| [GameInputRawDeviceItemCollectionInfo](/reference/input/gameinput/deprecated/structs/gameinputrawdeviceitemcollectioninfo) | v0   | 描述原始设备项的集合。                                     |
| [GameInputRawDeviceReportItemInfo](/reference/input/gameinput/deprecated/structs/gameinputrawdevicereportiteminfo)         | v0   | 描述原始设备报告项。                                      |
| [GameInputString](/reference/input/gameinput/deprecated/structs/gameinputstring)                                           | v0   | 描述包含有关输入设备的信息的字符串。                              |
| [GameInputTouchSensorInfo](/reference/input/gameinput/deprecated/structs/gameinputtouchsensorinfo)                         | v0   | 描述输入设备的触摸传感器。                                   |
| [GameInputTouchState](/reference/input/gameinput/deprecated/structs/gameinputtouchstate)                                   | v0   | 描述触摸输入设备的状态。                                    |
| [GameInputUiNavigationInfo](/reference/input/gameinput/deprecated/structs/gameinputuinavigationinfo)                       | v2   | 指定 UI 中导航按钮的标签。                                 |
| [GameInputUiNavigationState](/reference/input/gameinput/deprecated/structs/gameinputuinavigationstate)                     | v2   | 提供 UI 导航输入的当前状态。                                |

### 已移除的枚举

| 枚举                                                                                                                       | 最后版本 | 说明              |
| ------------------------------------------------------------------------------------------------------------------------ | ---- | --------------- |
| [GameInputBatteryStatus](/reference/input/gameinput/deprecated/enums/gameinputbatterystatus)                             | v0   | 枚举输入设备的电池状态。    |
| [GameInputDeviceCapabilities](/reference/input/gameinput/deprecated/enums/gameinputdevicecapabilities)                   | v0   | 枚举输入设备的某些能力。    |
| [GameInputLocation](/reference/input/gameinput/deprecated/enums/gameinputlocation)                                       | v0   | 枚举输入设备的部件。      |
| [GameInputMotionAccuracy](/reference/input/gameinput/deprecated/enums/gameinputmotionaccuracy)                           | v0   | 枚举动作传感器的精度级别。   |
| [GameInputRawDeviceItemCollectionKind](/reference/input/gameinput/deprecated/enums/gameinputrawdeviceitemcollectionkind) | v0   | 枚举原始设备项集合的类型。   |
| [GameInputRawDevicePhysicalUnitKind](/reference/input/gameinput/deprecated/enums/gameinputrawdevicephysicalunitkind)     | v0   | 枚举与设备输入关联的物理单位。 |
| [GameInputRawDeviceReportItemFlags](/reference/input/gameinput/deprecated/enums/gameinputrawdevicereportitemflags)       | v0   | 枚举原始设备报告项的类型。   |
| [GameInputTouchShape](/reference/input/gameinput/deprecated/enums/gameinputtouchshape)                                   | v0   | 枚举触摸传感器的形状。     |
| [GameInputUiNavigationButtons](/reference/input/gameinput/deprecated/enums/gameinputuinavigationbuttons)                 | v2   | 枚举 UI 导航按钮。     |

## 版本历史

| 版本     | 变更                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **v3** | 新增 `IGameInputMapper` 接口。重新引入 `IGameInputRawDeviceReport` 接口（在 v1/v2 中不存在）。新增 `GameInputAxisMapping`、`GameInputButtonMapping`、`GameInputControllerInfo`、`GameInputHapticInfo` 结构。重新引入 `GameInputRawDeviceReportInfo` 结构和 `GameInputRawDeviceReportKind` 枚举（在 v1/v2 中不存在）。重新引入 `GameInputVersion` 结构（在 v1/v2 中不存在）。新增 `GameInputElementKind`、`GameInputFlightStickAxes`、`GameInputGamepadAxes`、`GameInputRacingWheelAxes` 枚举。移除 `GameInputControllerAxisInfo`、`GameInputControllerButtonInfo`、`GameInputUiNavigationInfo`、`GameInputUiNavigationState` 结构。移除 `GameInputUiNavigationButtons` 枚举。 |
| **v2** | 新增 `GameInputSensorsInfo`、`GameInputSensorsState` 结构。新增 `GameInputSensorsKind`、`GameInputSensorAccuracy` 枚举。新增 `IGameInputDevice::DirectInputEscape`、`IGameInputDevice::GetHapticInfo`。新增 `IGameInputReading::GetSensorsState`。重新引入 `GameInputVersion` 结构（在 v1 中不存在）。                                                                                                                                                                                                                                                                                                                          |
| **v1** | 移除 `IGameInputRawDeviceReport` 接口、`GameInputRawDeviceReportInfo` 结构、`GameInputRawDeviceReportKind` 枚举。移除 `GameInputVersion` 结构。新增 `GameInputMousePositions` 枚举。移除仅在 v0 中存在的未实现的触觉、动作和触摸类型（`GameInputBatteryState`、`GameInputHapticFeedbackMotorInfo`、`GameInputHapticFeedbackParams`、`GameInputHapticWaveformInfo`、`GameInputMotionInfo`、`GameInputMotionState`、`GameInputTouchSensorInfo`、`GameInputTouchState`、`GameInputString`、`GameInputRawDeviceItemCollectionInfo`、`GameInputRawDeviceReportItemInfo`）。                                                                                 |
| **v0** | 引入。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |

## 概念文档

* [输入概述](/build/core-features/common/input/overviews/input-overview)
* [输入基础知识](/build/core-features/common/input/overviews/input-fundamentals)
* [输入设备](/build/core-features/common/input/overviews/input-devices)

## 另请参阅

[输入 API 参考](/reference/input/gc-reference-input-toc)


## Related topics

- [从 Windows.XBOX.Input 移植到 GameInput](/zh-CN/build/core-features/common/input/porting/input-porting-wxi.md)
- [GameInput 概述](/zh-CN/build/core-features/common/input/overviews/input-overview.md)
- [GameInput 读取](/zh-CN/build/core-features/common/input/overviews/input-readings.md)
- [GameInput 回调](/zh-CN/build/core-features/common/input/advanced/input-callbacks.md)
- [从 XInput 移植到 GameInput](/zh-CN/build/core-features/common/input/porting/input-porting-xinput.md)
