XINPUT and Controller Subtypes

A table of controller subtypes available in XInput.

Subtype Value Meaning
XINPUT_DEVSUBTYPE_UNKNOWN 0x00 Unknown.
The controller type is unknown.
XINPUT_DEVSUBTYPE_GAMEPAD 0x01 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, RSB).
XINPUT_DEVSUBTYPE_WHEEL 0x02 Racing wheel controller.
Left Stick X reports the wheel rotation, Right Trigger is the acceleration pedal, and Left Trigger is the brake pedal. Includes Directional Pad and most standard buttons (A, B, X, Y, START, BACK, LB, RB). LSB and RSB are optional.
XINPUT_DEVSUBTYPE_ARCADE_STICK 0x03 Arcade stick controller.
Includes a Digital Stick that reports as a DPAD (up, down, left, right), and most standard buttons (A, B, X, Y, START, 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 0x04 Flight stick controller.
Includes a pitch and roll stick that reports as the Left Stick, a POV Hat which reports as the Right Stick, a rudder (handle twist or rocker) that reports as 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, BACK). LB, LSB, RB, and RSB are optional.
XINPUT_DEVSUBTYPE_DANCE_PAD 0x05 Dance pad controller.
Includes the Directional Pad and standard buttons (A, B, X, Y) on the pad, plus BACK and START.
XINPUT_DEVSUBTYPE_GUITAR 0x06 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; Right Stick X is the whammy bar. Includes support for BACK, START, DPAD (left, right). Left Trigger (pickup selector), Right Trigger, RB, LSB (fret modifier), RSB are optional.
XINPUT_DEVSUBTYPE_GUITAR_ALTERNATE 0x07 Alternate guitar controller.
Supports a larger range of movement for the vertical orientation sensor.
XINPUT_DEVSUBTYPE_DRUM_KIT 0x08 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). Includes Directional-Pad, BACK, and START. RB, LSB, and RSB are optional.
XINPUT_DEVSUBTYPE_GUITAR_BASS 0x0B Bass guitar controller.
Identical to Guitar, with the distinct subtype to simplify setup.
XINPUT_DEVSUBTYPE_ARCADE_PAD 0x13 Arcade pad controller.
Includes Directional Pad and most standard buttons (A, B, X, Y, START, BACK, LB, 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.

Note

The legacy version of XINPUT on Windows Vista (XInput 9.1.0) always returns a fixed subtype of XINPUT_DEVSUBTYPE_GAMEPAD, regardless of attached device.