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

# XINPUT_CAPABILITIES

> XINPUT_CAPABILITIES

# XINPUT\_CAPABILITIES

描述已连接控制器的功能。

## 语法

```cpp theme={null}
typedef struct XINPUT_CAPABILITIES {  
    BYTE Type;  
    BYTE SubType;  
    WORD Flags;  
    XINPUT_GAMEPAD Gamepad;  
    XINPUT_VIBRATION Vibration;  
} XINPUT_CAPABILITIES  
```

### 成员

*Type*\
类型：BYTE

控制器类型。它必须为 XINPUT\_DEVTYPE\_GAMEPAD 类型，并具有下表中列出的值之一。

*SubType*\
类型：BYTE

游戏控制器的子类型。

允许的子类型：

| 子类型                                                                                               | 含义                                                                                                                                                                                                                       |
| ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| XINPUT\_DEVSUBTYPE\_UNKNOWN                                                                       | 未知。控制器类型未知。                                                                                                                                                                                                              |
| XINPUT\_DEVSUBTYPE\_GAMEPAD                                                                       | 游戏手柄控制器。包括左右摇杆、左右扳机、方向键以及所有标准按钮：A、B、X、Y、START、BACK、LB、RB、LSB 和 RSB。                                                                                                                                                      |
| XINPUT\_DEVSUBTYPE\_WHEEL                                                                         | 赛车方向盘控制器。左摇杆的 X 轴报告方向盘旋转，右扳机为油门踏板，左扳机为刹车踏板。包含方向键和大多数标准按钮：A、B、X、Y、START、BACK、LB 和 RB。LSB 和 RSB 为可选。                                                                                                                       |
| XINPUT\_DEVSUBTYPE\_ARCADE\_STICK                                                                 | 街机摇杆控制器。包括一个作为方向键（上、下、左、右）报告的数字摇杆和大多数标准按钮：A、B、X、Y、START 和 BACK。左右扳机以数字按钮的形式实现，只报告 0 或 0xFF。LB、LSB、RB 和 RSB 为可选。                                                                                                          |
| XINPUT\_DEVSUBTYPE\_FLIGHT\_STICK                                                                 | 飞行摇杆控制器。包括作为左摇杆报告的俯仰-横滚摇杆、作为右摇杆报告的 POV 帽盖开关、作为左扳机报告的方向舵（把手扭转或摇杆），以及作为右扳机的油门控制。支持主武器 (A)、副武器 (B) 以及其他标准按钮：X、Y、START 和 BACK。LB、LSB、RB 和 RSB 为可选。                                                                           |
| XINPUT\_DEVSUBTYPE\_DANCE\_PAD                                                                    | 跳舞毯控制器。包括方向键和跳舞毯上的标准按钮（A、B、X 和 Y），以及 BACK 和 START。                                                                                                                                                                       |
| XINPUT\_DEVSUBTYPE\_GUITAR XINPUT\_DEVSUBTYPE\_GUITAR\_ALTERNATE XINPUT\_DEVSUBTYPE\_GUITAR\_BASS | 吉他控制器。扫弦条映射到方向键（上和下），品格分配为 A（绿）、B（红）、Y（黄）、X（蓝）和 LB（橙）。右摇杆的 Y 轴与垂直方向传感器关联，右摇杆的 X 轴为摇把。支持 BACK、START 和方向键（左、右）。左扳机（拾音器选择器）、右扳机、RB、LSB（品格修饰键）和 RSB 为可选。Guitar Bass 与 Guitar 完全相同，采用独立的子类型以简化设置。Guitar Alt 支持垂直方向传感器更大的运动范围。 |
| XINPUT\_DEVSUBTYPE\_DRUM\_KIT                                                                     | 鼓组控制器。鼓垫分配到按钮：A 表示绿色（落地嗵鼓）、B 表示红色（军鼓）、X 表示蓝色（低嗵鼓）、Y 表示黄色（高嗵鼓），LB 表示踏板（低音鼓）。包括方向键、BACK 和 START。RB、LSB 和 RSB 为可选。                                                                                                          |
| XINPUT\_DEVSUBTYPE\_ARCADE\_PAD                                                                   | 街机手柄控制器。包括方向键和大多数标准按钮：A、B、X、Y、START、BACK、LB 和 RB。左右扳机以数字按钮形式实现，只报告 0 或 0xFF。左摇杆、右摇杆、LSB 和 RSB 为可选。                                                                                                                       |

*Flags*\
类型：WORD

控制器的特性。

| 值                              | 描述                                                           |
| ------------------------------ | ------------------------------------------------------------ |
| XINPUT\_CAPS\_VOICE\_SUPPORTED | 设备具有集成的语音设备。                                                 |
| XINPUT\_CAPS\_FFB\_SUPPORTED   | 设备支持力反馈功能。目前，除振动之外的力反馈功能在 Windows 上的 XINPUT 中不受支持。           |
| XINPUT\_CAPS\_WIRELESS         | 设备为无线设备。                                                     |
| XINPUT\_CAPS\_PMD\_SUPPORTED   | 设备支持插入式模块。目前，插入式模块（例如文字输入设备 (TID)）在 Windows 上的 XINPUT 中不受支持。 |
| XINPUT\_CAPS\_NO\_NAVIGATION   | 设备缺少菜单导航按钮：START、BACK 和方向键。                                  |

*Gamepad*\
类型：[XINPUT\_GAMEPAD](/reference/input/xinputongameinput/structs/xinput_gamepad)

描述可用控制器功能和控件分辨率的 [XINPUT\_GAMEPAD](/reference/input/xinputongameinput/structs/xinput_gamepad) 结构。

*Vibration*\
类型：[XINPUT\_VIBRATION](/reference/input/xinputongameinput/structs/xinput_vibration)

描述可用振动功能和分辨率的 [XINPUT\_VIBRATION](/reference/input/xinputongameinput/structs/xinput_vibration) 结构。

## 备注

[XInputGetCapabilities](/reference/input/xinputongameinput/functions/xinputgetcapabilities) 返回 XINPUT\_CAPABILITIES 以指示指定控制器的特性和可用功能。

[XInputGetCapabilities](/reference/input/xinputongameinput/functions/xinputgetcapabilities) 会设置结构成员以指示设备支持哪些输入。对于二进制状态控件（如数字按钮），相应位反映设备是否支持该控件。对于比例控件（如摇杆），值表示该控件的分辨率。可能有若干低位未设置，用于表明该控件未提供到该级别的分辨率。

*SubType* 成员指示所连接控制器的具体子类型。游戏可以检测控制器子类型，并根据适合其游戏类型的子类型来调整对控制器输入或输出的处理。例如，一款赛车游戏可以检查是否存在方向盘控制器，以对所驾驶的汽车提供更精细的控制。但是，游戏不得根据设备的子类型禁用或忽略该设备。对于游戏未识别或未专门针对其调优的子类型，应将其视为标准游戏手柄，即 XINPUT\_DEVSUBTYPE\_GAMEPAD。

较旧的 XUSB Windows 驱动程序报告的功能信息不完整，尤其是对于无线设备。最新的 XUSB Windows 驱动程序全面支持有线和无线设备，并提供更完整、更准确的功能标志。

## 要求

**头文件：** XInputOnGameInput.h

**支持的平台：** XBOX One 系列主机和 XBOX Series 主机

## 另请参阅

[将 XInput 移植到 GameInput](/build/core-features/common/input/porting/input-porting-xinput)\
[XInputOnGameInput](/reference/input/xinputongameinput/xinputongameinput_members)


## Related topics

- [XInputGetCapabilities](/zh-CN/reference/input/xinputongameinput/functions/xinputgetcapabilities.md)
- [XInputOnGameInput](/zh-CN/reference/input/xinputongameinput/xinputongameinput_members.md)
- [XINPUT_GAMEPAD](/zh-CN/reference/input/xinputongameinput/structs/xinput_gamepad.md)
- [XINPUT_VIBRATION](/zh-CN/reference/input/xinputongameinput/structs/xinput_vibration.md)
- [XINPUT_KEYSTROKE](/zh-CN/reference/input/xinputongameinput/structs/xinput_keystroke.md)
