> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# GetDeviceInfo

> GetDeviceInfo

Accesses static information about the full properties and capabilities of an input device.

## Syntax

```cpp theme={null}
HRESULT GetDeviceInfo(
    const GameInputDeviceInfo** info
);
```

### Parameters

*info*   \_Outptr\_\
Type: GameInputDeviceInfo\*\*

The device info associated with the IGameInputDevice.

### Return value

Type: HRESULT

Function result.

## Remarks

The `GetDeviceInfo` method memory is not owned by the application. The memory will remain accessible if the `IGameInput` instance is kept alive by the application. Once the reference to the `IGameInput` object is released, the memory goes away.

The following code example demonstrates how to determine whether a racing wheel has a clutch.

```cpp theme={null}
bool HasClutch(IGameInputDevice* wheel) noexcept
{
    const GameInputDeviceInfo* wheelInfo = nullptr;
    const bool succeeded = wheel->GetDeviceInfo(&wheelInfo);
    assert(succeeded);
    assert(wheelInfo->racingWheelInfo);

    const bool hasClutch = wheelInfo->racingWheelInfo->hasClutch;

    return hasClutch;
}
```

## Requirements

**Header:** GameInput.h

[Overview of GameInput](https://docs.xbox.com/build/core-features/common/input/overviews/input-overview.md)\
[GameInputDeviceInfo](https://docs.xbox.com/reference/input/gameinput/structs/gameinputdeviceinfo.md)\
[IGameInputDevice](https://docs.xbox.com/reference/input/gameinput/interfaces/igameinputdevice/igameinputdevice.md)

## Version History

| Version | Changes |
| - | - |
| **v3** | Signature unchanged. [GameInputDeviceInfo](https://docs.xbox.com/reference/input/gameinput/structs/gameinputdeviceinfo.md) extended: `controllerInfo` added (replacing separate axis/button/switch count+info fields and `uiNavigationInfo`); `inputReportCount`/`inputReportInfo` and `outputReportCount`/`outputReportInfo` added; `hapticFeedbackMotorInfo` removed. |
| **v2** | Signature unchanged. [GameInputDeviceInfo](https://docs.xbox.com/reference/input/gameinput/structs/gameinputdeviceinfo.md) extended with `revisionNumber`, `hardwareVersion`, `firmwareVersion`, `containerId`, and `sensorsInfo`. |
| **v1** | Signature unchanged. [GameInputDeviceInfo](https://docs.xbox.com/reference/input/gameinput/structs/gameinputdeviceinfo.md) was significantly simplified: `infoSize`, `interfaceNumber`, `collectionNumber`, `capabilities`, touch/haptic/string/descriptor fields removed; `supportedSystemButtons`, `displayName`, and `pnpPath` added. |
| **v0** | Introduced. |


## Related topics

- [GameInputDeviceInfo](https://docs.xbox.com/reference/input/gameinput/structs/gameinputdeviceinfo.md)
- [GameInputRawDeviceReportInfo](https://docs.xbox.com/reference/input/gameinput/structs/gameinputrawdevicereportinfo.md)
- [GameInputGamepadInfo](https://docs.xbox.com/reference/input/gameinput/structs/gameinputgamepadinfo.md)
- [GameInputKeyboardInfo](https://docs.xbox.com/reference/input/gameinput/structs/gameinputkeyboardinfo.md)
- [GameInputMouseInfo](https://docs.xbox.com/reference/input/gameinput/structs/gameinputmouseinfo.md)
