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

# GetDeviceInfo

> 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](/build/core-features/common/input/overviews/input-overview)\
[GameInputDeviceInfo](/reference/input/gameinput/structs/gameinputdeviceinfo)\
[IGameInputDevice](/reference/input/gameinput/interfaces/igameinputdevice/igameinputdevice)

## Version History

| Version | Changes                                                                                                                                                                                                                                                                                                                                         |
| ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **v3**  | Signature unchanged. [GameInputDeviceInfo](/reference/input/gameinput/structs/gameinputdeviceinfo) 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](/reference/input/gameinput/structs/gameinputdeviceinfo) extended with `revisionNumber`, `hardwareVersion`, `firmwareVersion`, `containerId`, and `sensorsInfo`.                                                                                                                                      |
| **v1**  | Signature unchanged. [GameInputDeviceInfo](/reference/input/gameinput/structs/gameinputdeviceinfo) was significantly simplified: `infoSize`, `interfaceNumber`, `collectionNumber`, `capabilities`, touch/haptic/string/descriptor fields removed; `supportedSystemButtons`, `displayName`, and `pnpPath` added.                                |
| **v0**  | Introduced.                                                                                                                                                                                                                                                                                                                                     |


## Related topics

- [GameInputDeviceInfo](/reference/input/gameinput/structs/gameinputdeviceinfo.md)
- [GameInputRawDeviceReportInfo](/reference/input/gameinput/structs/gameinputrawdevicereportinfo.md)
- [GameInputSensorsInfo](/reference/input/gameinput/structs/gameinputsensorsinfo.md)
- [GameInputGamepadInfo](/reference/input/gameinput/structs/gameinputgamepadinfo.md)
- [GameInputKeyboardInfo](/reference/input/gameinput/structs/gameinputkeyboardinfo.md)
