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

# XSystemDeviceType

> XSystemDeviceType

Indicates the system device type returned by calling [XSystemGetDeviceType](https://docs.xbox.com/reference/system/xsystem/functions/xsystemgetdevicetype.md).

## Syntax

```cpp theme={null}
enum class XSystemDeviceType  : uint32_t
{
    Unknown              = 0x00,
    Pc                   = 0x01,
    XboxOne              = 0x02,
    XboxOneS             = 0x03,
    XboxOneX             = 0x04,
    XboxOneXDevkit       = 0x05,
    XboxScarlettLockhart = 0x06,
    XboxScarlettAnaconda = 0x07,
    XboxScarlettDevkit   = 0x08
}
```

## Constants

| Constant | Description |
| - | - |
| Unknown | Device type is unknown. This value is returned by `XSystemGetDeviceType` when the device type can't be determined. |
| Pc | The device is a PC. |
| XboxOne | The device is an XBOX One. |
| XboxOneS | The device is an XBOX One S. |
| XboxOneX | The device is an XBOX One X. |
| XboxOneXDevkit | The device is an XBOX One X Dev Kit. |
| XboxScarlettLockhart | The device is an XBOX Series S. |
| XboxScarlettAnaconda | The device is an XBOX Series X. |
| XboxScarlettDevkit | The device is an XBOX Series X Dev Kit. |

## Remarks

The `XSystemGetDeviceType` function has no explicit error state. It returns a value of `XSystemDeviceType::Unknown` if it is unable to determine the system device type.

You can call `XSystemGetDeviceType` before calling [XGameRuntimeInitialize](https://docs.xbox.com/reference/system/xgameruntimeinit/functions/xgameruntimeinitialize.md), during early title initialization.

The following code example gets the type of system device currently in use. If it's running on a dev kit, then it runs custom code to enable developer features within the game.

```cpp theme={null}
const XSystemDeviceType deviceType = XSystemGetDeviceType();

const bool deviceIsDevkit = 
    deviceType == XSystemDeviceType::XboxOneXDevkit || 
    deviceType == XSystemDeviceType::XboxScarlettDevkit;

if (deviceIsDevkit)
{
    EnableGameSpecificDevkitFeatures();
}
```

## Requirements

**Header:** XSystem.h

**Supported platforms:** Windows, XBOX One family consoles and XBOX Series consoles

## See also

[XSystem](https://docs.xbox.com/reference/system/xsystem/xsystem_members.md)\
[XSystemGetDeviceType](https://docs.xbox.com/reference/system/xsystem/functions/xsystemgetdevicetype.md)\
[XGameRuntimeInitialize](https://docs.xbox.com/reference/system/xgameruntimeinit/functions/xgameruntimeinitialize.md)


## Related topics

- [XSystemGetDeviceType](https://docs.xbox.com/reference/system/xsystem/functions/xsystemgetdevicetype.md)
- [XSystem (API contents)](https://docs.xbox.com/reference/system/xsystem/xsystem_members.md)
- [Intelligent Delivery: devices specifiers](https://docs.xbox.com/build/core-features/common/packaging/intelligentdelivery-device.md)
- [Understanding How PlayFab Party chat works](https://docs.xbox.com/services/playfab/community/voice-communications/concepts-chat.md)
- [XSystemGetAppSpecificDeviceId](https://docs.xbox.com/reference/system/xsystem/functions/xsystemgetappspecificdeviceid.md)
