File:Logitech Rumblepad F510, 1.jpg"File:Logitech Rumblepad F510, 1.jpg" by Morn is licensed under CC BY-SA 3.0

XInput is an API that allows applications to receive input from the Xbox Controller for Windows. The DirectInput API is used to process data from a joystick, or other game controller. Use of legacy DirectInput is not recommended, and DirectInput is not available for Windows Store apps.

Microsoft introduced XInput as a new API with better support for advanced controllers. Around 2011 Microsoft deprecated DirectInput, Some controllers have a hardware switch to toggle modes.

“Xbox 360 Controller Emulator” program could be used to translate XInput calls to DirectInput calls - supports old, non-XInput compatible GamePads.

References: