diff --git a/Packages/com.unity.inputsystem/InputSystem/Plugins/XInput/XInputController.cs b/Packages/com.unity.inputsystem/InputSystem/Plugins/XInput/XInputController.cs
index fcaa117956..870ae9a7d5 100644
--- a/Packages/com.unity.inputsystem/InputSystem/Plugins/XInput/XInputController.cs
+++ b/Packages/com.unity.inputsystem/InputSystem/Plugins/XInput/XInputController.cs
@@ -148,20 +148,156 @@ internal enum DeviceType
/// Controller subtype enumeration in SubType field of XINPUT_CAPABILITIES.
///
///
- /// See MSDN.
+ /// Provides additional detail about the underlying hardware being used and how it maps physical to logical
+ /// controls.
+ ///
+ /// See MSDN
+ /// for additional details.
///
public enum DeviceSubType
{
+ ///
+ /// The controller type is unknown.
+ ///
Unknown = 0x00,
+
+ ///
+ /// Gamepad controller.
+ ///
+ ///
+ /// Includes left and right stick as and ,
+ /// left and right trigger as and ,
+ /// directional pad as ,
+ /// and all standard buttons (, ,
+ /// , ,
+ /// , ,
+ /// , ,
+ /// , ).
+ ///
Gamepad = 0x01,
+
+ ///
+ /// Racing wheel controller.
+ ///
+ ///
+ /// x-axis reports the wheel rotation,
+ /// is the acceleration pedal, and
+ /// Left Trigger is the brake pedal.
+ /// Includes Directional Pad as and most standard buttons
+ /// (, ,
+ /// , ,
+ /// , ,
+ /// , ).
+ /// and are optional.
+ ///
Wheel = 0x02,
+
+ ///
+ /// Arcade stick controller.
+ ///
+ ///
+ /// Includes a Digital Stick that reports as a (up, down, left, right),
+ /// and most standard buttons (, ,
+ /// , ,
+ /// , ).
+ /// The and are implemented as digital
+ /// buttons and report either 0.0f or 1.0f.
+ /// The , and
+ /// , are optional.
+ ///
ArcadeStick = 0x03,
+
+ ///
+ /// Flight stick controller.
+ ///
+ ///
+ /// Includes a pitch and roll stick that reports as the , a POV Hat which
+ /// reports as the , a rudder (handle twist or rocker) that reports as
+ /// , and a throttle control as the .
+ /// Includes support for a primary weapon (), secondary weapon
+ /// (), and other standard buttons (,
+ /// , ,
+ /// ).
+ /// , and
+ /// , are optional.
+ ///
FlightStick = 0x04,
+
+ ///
+ /// Dance pad controller.
+ ///
+ ///
+ /// Includes the and standard buttons (,
+ /// , ,
+ /// ) on the pad, plus and
+ /// .
+ ///
DancePad = 0x05,
+
+ ///
+ /// Guitar controller.
+ ///
+ ///
+ /// The strum bar maps to (up and down), and the frets are assigned to
+ /// (green), (red),
+ /// (yellow), (blue), and
+ /// (orange).
+ /// y-axis is associated with a vertical orientation sensor;
+ /// x-axis is the whammy bar.
+ /// Includes support for , ,
+ /// (left, right).
+ /// (pickup selector), ,
+ /// , (fret modifier),
+ /// are optional.
+ ///
Guitar = 0x06,
+
+ ///
+ /// Alternate guitar controller.
+ ///
+ ///
+ /// Similar to but supports a larger range of movement for the vertical orientation
+ /// sensor.
+ ///
GuitarAlternate = 0x07,
+
+ ///
+ /// Drum kit controller.
+ ///
+ ///
+ /// The drum pads are assigned to buttons: for green (Floor Tom),
+ /// for red (Snare Drum),
+ /// for blue (Low Tom),
+ /// for yellow (High Tom),
+ /// and for the pedal (Bass Drum).
+ /// Includes , , and
+ /// . ,
+ /// , and are optional.
+ ///
DrumKit = 0x08,
+
+ ///
+ /// Bass guitar controller.
+ ///
+ ///
+ /// Identical to , with the distinct subtype to simplify setup.
+ ///
GuitarBass = 0x0B,
+
+ ///
+ /// Arcade pad controller.
+ ///
+ ///
+ /// Includes Directional Pad and most standard buttons
+ /// (, ,
+ /// , ,
+ /// , ,
+ /// , ).
+ /// The , are implemented as digital
+ /// buttons and report either 0.0f or 1.0f.
+ /// , ,
+ /// and are optional.
+ ///
ArcadePad = 0x13
}