> ## 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 | 大型機台搖桿控制器。包含回報為 DPAD (上、下、左和右) 的數位搖桿，以及大部分標準按鈕：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 | 吉他控制器。撥弦桿對應至 DPAD (上和下)，琴格則指派給 A (綠色)、B (紅色)、Y (黃色)、X (藍色) 和 LB (橘色)。右搖桿 Y 與垂直方向感應器相關聯，右搖桿 X 為搖桿桿 (whammy bar)。支援 BACK、START 和 DPAD (左、右)。左扳機 (拾音器選擇器)、右扳機、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 | 裝置支援外掛模組。目前在 Windows 上透過 XINPUT 不支援外掛模組 (例如文字輸入裝置 (TID))。 |
| XINPUT\_CAPS\_NO\_NAVIGATION | 裝置缺少功能表導覽按鈕：START、BACK 和 DPAD。 |

*Gamepad*\
類型：[XINPUT\_GAMEPAD](/zh-TW/reference/input/xinputongameinput/structs/xinput_gamepad)

描述可用控制器特性和控制解析度的 [XINPUT\_GAMEPAD](/zh-TW/reference/input/xinputongameinput/structs/xinput_gamepad) 結構。

*Vibration*\
類型：[XINPUT\_VIBRATION](/zh-TW/reference/input/xinputongameinput/structs/xinput_vibration)

描述可用震動功能和解析度的 [XINPUT\_VIBRATION](/zh-TW/reference/input/xinputongameinput/structs/xinput_vibration) 結構。

## 備註

[XInputGetCapabilities](/zh-TW/reference/input/xinputongameinput/functions/xinputgetcapabilities) 會傳回 XINPUT\_CAPABILITIES，以指出指定控制器的特性和可用功能。

[XInputGetCapabilities](/zh-TW/reference/input/xinputongameinput/functions/xinputgetcapabilities) 會設定結構成員，以指出裝置支援哪些輸入。對於二元狀態控制項 (例如數位按鈕)，對應的位元會反映裝置是否支援該控制項。對於比例控制項 (例如搖桿)，值會指出該控制項的解析度。部分最低有效位元可能不會設定，以表示該控制項不提供該層級的解析度。

SubType 成員會指出目前控制器的特定子類型。遊戲可以偵測控制器子類型，並根據適合其遊戲類型的子類型來調整控制器輸入或輸出的處理方式。例如，賽車遊戲可能會檢查是否有方向盤控制器，以便更精細地控制所駕駛的車輛。不過，遊戲不得根據子類型停用或忽略裝置。遊戲無法辨識或未特別調整的子類型，應視為標準控制器 XINPUT\_DEVSUBTYPE\_GAMEPAD。

較舊的 XUSB Windows 驅動程式會回報不完整的功能資訊，特別是無線裝置。最新的 XUSB Windows 驅動程式完整支援有線和無線裝置，並提供更完整且精確的功能旗標。

## 需求

**標頭：** XInputOnGameInput.h

**支援的平台：** XBOX One 系列主機和 XBOX Series 主機

## 另請參閱

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


## Related topics

- [XInputGetCapabilities](/zh-TW/reference/input/xinputongameinput/functions/xinputgetcapabilities.md)
- [XInputOnGameInput](/zh-TW/reference/input/xinputongameinput/xinputongameinput_members.md)
- [XINPUT_GAMEPAD](/zh-TW/reference/input/xinputongameinput/structs/xinput_gamepad.md)
- [XINPUT_KEYSTROKE](/zh-TW/reference/input/xinputongameinput/structs/xinput_keystroke.md)
- [XINPUT_STATE](/zh-TW/reference/input/xinputongameinput/structs/xinput_state.md)
