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

Describes the capabilities of a connected controller.

## Syntax

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

### Members

*Type*\
Type: BYTE

Controller type. It must be of type XINPUT\_DEVTYPE\_GAMEPAD and have one of the values listed in the table below.

*SubType*\
Type: BYTE

Subtype of the game controller.

Allowed subtypes:

| Subtype                                                                                           | Meaning                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| ------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| XINPUT\_DEVSUBTYPE\_UNKNOWN                                                                       | Unknown. The controller type is unknown.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| XINPUT\_DEVSUBTYPE\_GAMEPAD                                                                       | Gamepad controller. Includes Left and Right Sticks, Left and Right Triggers, Directional Pad, and all standard buttons: A, B, X, Y, START, BACK, LB, RB, LSB, and RSB.                                                                                                                                                                                                                                                                                                                                                                                                                         |
| XINPUT\_DEVSUBTYPE\_WHEEL                                                                         | Racing wheel controller. Left Stick X reports the wheel rotation, Right Trigger is the acceleration pedal, and Left Trigger is the brake pedal. Directional Pad and most of the standard buttons are included: A, B, X, Y, START, BACK, LB, and RB. LSB and RSB are optional.                                                                                                                                                                                                                                                                                                                  |
| XINPUT\_DEVSUBTYPE\_ARCADE\_STICK                                                                 | Arcade stick controller. Includes a Digital Stick that reports as a DPAD (up, down, left, and right) and most of the standard buttons: A, B, X, Y, START, and BACK. The Left and Right Triggers are implemented as digital buttons and report either 0 or 0xFF. LB, LSB, RB, and RSB are optional.                                                                                                                                                                                                                                                                                             |
| XINPUT\_DEVSUBTYPE\_FLIGHT\_STICK                                                                 | Flight stick controller. Includes a pitch-and-roll stick that reports as the Left Stick, a POV Hat that reports as the Right Stick, a rudder (handle twist or rocker) that reports as the Left Trigger, and a throttle control as the Right Trigger. Includes support for a primary weapon (A), secondary weapon (B), and other standard buttons: X, Y, START, and BACK. LB, LSB, RB, and RSB are optional.                                                                                                                                                                                    |
| XINPUT\_DEVSUBTYPE\_DANCE\_PAD                                                                    | Dance Pad controller. Includes the Directional Pad and standard buttons (A, B, X, and Y) on the pad, as well as BACK and START.                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| XINPUT\_DEVSUBTYPE\_GUITAR XINPUT\_DEVSUBTYPE\_GUITAR\_ALTERNATE XINPUT\_DEVSUBTYPE\_GUITAR\_BASS | Guitar controller. The strum bar maps to DPAD (up and down), and the frets are assigned to A (green), B (red), Y (yellow), X (blue), and LB (orange). Right Stick Y is associated with a vertical orientation sensor, and Right Stick X is the whammy bar. Support for BACK, START, and DPAD (left, right) is included. Left Trigger (pickup selector), Right Trigger, RB, LSB (fret modifier), and RSB are optional. Guitar Bass is identical to Guitar, with the distinct subtype for simplifying setup. Guitar Alt supports a larger range of movement for the vertical orientation sensor. |
| XINPUT\_DEVSUBTYPE\_DRUM\_KIT                                                                     | Drum controller. The drum pads are assigned to buttons: A for green (Floor Tom), B for red (Snare Drum), X for blue (Low Tom), Y for yellow (High Tom), and LB for the pedal (Bass Drum). Directional-Pad, BACK, and START are included. RB, LSB, and RSB are optional.                                                                                                                                                                                                                                                                                                                        |
| XINPUT\_DEVSUBTYPE\_ARCADE\_PAD                                                                   | Arcade pad controller. Includes Directional Pad and most of the standard buttons: A, B, X, Y, START, BACK, LB, and RB. The Left and Right Triggers are implemented as digital buttons and report either 0 or 0xFF. Left Stick, Right Stick, LSB, and RSB are optional.                                                                                                                                                                                                                                                                                                                         |

*Flags*\
Type: WORD

Features of the controller.

| Value                          | Description                                                                                                                                        |
| ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| XINPUT\_CAPS\_VOICE\_SUPPORTED | Device has an integrated voice device.                                                                                                             |
| XINPUT\_CAPS\_FFB\_SUPPORTED   | Device supports force-feedback functionality. At this time, force-feedback features other than rumble are not supported through XINPUT on Windows. |
| XINPUT\_CAPS\_WIRELESS         | Device is wireless.                                                                                                                                |
| XINPUT\_CAPS\_PMD\_SUPPORTED   | Device supports plug-in modules. At this time, plug-in modules (such as text input device (TID)) are not supported through XINPUT on Windows.      |
| XINPUT\_CAPS\_NO\_NAVIGATION   | Device lacks the menu-navigation buttons: START, BACK, and DPAD.                                                                                   |

*Gamepad*\
Type: [XINPUT\_GAMEPAD](/reference/input/xinputongameinput/structs/xinput_gamepad)

[XINPUT\_GAMEPAD](/reference/input/xinputongameinput/structs/xinput_gamepad) structure that describes available controller features and control resolutions.

*Vibration*\
Type: [XINPUT\_VIBRATION](/reference/input/xinputongameinput/structs/xinput_vibration)

[XINPUT\_VIBRATION](/reference/input/xinputongameinput/structs/xinput_vibration) structure that describes available vibration functionality and resolutions.

## Remarks

[XInputGetCapabilities](/reference/input/xinputongameinput/functions/xinputgetcapabilities) returns XINPUT\_CAPABILITIES to indicate the characteristics and available functionality of a specified controller.

[XInputGetCapabilities](/reference/input/xinputongameinput/functions/xinputgetcapabilities) sets the structure members to indicate which inputs the device supports. For binary state controls, such as digital buttons, the corresponding bit reflects whether the control is supported by the device. For proportional controls, such as thumbsticks, the value indicates the resolution for that control. Some number of the least-significant bits may not be set, to indicate that the control does not provide resolution to that level.

The SubType member indicates the specific subtype of the controller present. Games may detect the controller subtype and tune their handling of controller input or output according to the subtypes well suited to their game genre. For example, a game of car racing might check for the presence of a wheel controller to provide finer control of the car being driven. However, titles must not disable or ignore a device according to its subtype. A subtype not recognized by the game or for which the game is not specifically tuned should be treated as a standard gamepad, XINPUT\_DEVSUBTYPE\_GAMEPAD.

Older XUSB Windows drivers report information about incomplete capabilities, particularly for wireless devices. The latest XUSB Windows driver provides full support for wired and wireless devices, and it provide more complete and accurate capabilities flags.

## Requirements

**Header:** XInputOnGameInput.h

**Supported platforms:** XBOX One family consoles and XBOX Series consoles

## See also

[Port XInput to GameInput](/build/core-features/common/input/porting/input-porting-xinput)\
[XInputOnGameInput](/reference/input/xinputongameinput/xinputongameinput_members)
