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

# IGameInputDevice::GetXInputDeviceIndex

> 取得指派給輸入裝置的 XInput 使用者索引 (如果有的話)。

取得指派給輸入裝置的 XInput 使用者索引 (如果有的話)。

## 語法

```cpp theme={null}
bool GetXInputDeviceIndex(
    uint32_t* index
);
```

### 參數

*index*   \_Out\_\
類型：uint32\_t\*

接收裝置之從零開始的 XInput 使用者索引 (0 到 3)。如果裝置沒有 XInput 使用者索引，此值會設定為 0。

### 傳回值

類型：bool

如果裝置目前具有 XInput 使用者索引，則為 `true`；否則為 `false`。

## 備註

XInput 使用者索引是 XInput API 用來識別控制器的控制器插槽，通常對應於控制器上顯示的玩家指示燈。使用此方法，將 GameInput 裝置與 XInput 中相同使用者索引所參考的控制器建立關聯，例如在一次一個控制器地將遊戲從 XInput 移轉至 GameInput 時。

只有透過 XInput 公開的裝置才具有使用者索引。其他裝置 (例如鍵盤、滑鼠和大部分的 HID 遊戲控制器) 會傳回 `false`。彙總裝置永遠不會有 XInput 使用者索引。當裝置中斷連線時，其使用者索引會被釋放，且此方法會傳回 `false`。

與大部分的裝置屬性不同，XInput 使用者索引可能會在裝置連線期間變更。當索引變更時，GameInput 會以 [GameInputDeviceEvent](https://learn.microsoft.com/en-us/gaming/gdk/docs/reference/input/gameinput/enums/gameinputdeviceevent) 的 `GameInputDeviceEventXInputIndexUpdated` 值通知已註冊的裝置回呼。請從回呼中再次呼叫 `GetXInputDeviceIndex` 以取得新的索引。

```cpp theme={null}
void CALLBACK OnDeviceEvent(
    GameInputCallbackToken callbackToken,
    void* context,
    GameInputDeviceEvent deviceEvent,
    IGameInputDevice* device) noexcept
{
    if (deviceEvent == GameInputDeviceEventXInputIndexUpdated)
    {
        uint32_t index = 0;
        if (device->GetXInputDeviceIndex(&index))
        {
            // The device is now assigned to XInput user index 'index'.
        }
        else
        {
            // The device no longer has an XInput user index.
        }
    }
}
```

## 需求

**標頭：** GameInput.h

**程式庫：** gameinput.lib

**支援的平台：** Windows、XBOX One 系列主機和 XBOX Series 主機

## 另請參閱

[GameInput 概觀](https://docs.xbox.com/zh-TW/build/core-features/common/input/overviews/input-overview.md)\
[IGameInputDevice](https://docs.xbox.com/zh-TW/reference/input/gameinput/interfaces/igameinputdevice/igameinputdevice.md)\
[GameInputDeviceEvent](https://learn.microsoft.com/en-us/gaming/gdk/docs/reference/input/gameinput/enums/gameinputdeviceevent)\
[IGameInput::RegisterDeviceCallback](https://docs.xbox.com/zh-TW/reference/input/gameinput/interfaces/igameinput/methods/igameinput_registerdevicecallback.md)

## 版本歷程記錄

| 版本 | 變更 |
| - | - |
| **v4** | 已推出。 |


## Related topics

- [IGameInput::RegisterDeviceCallback](https://docs.xbox.com/zh-TW/reference/input/gameinput/interfaces/igameinput/methods/igameinput_registerdevicecallback.md)
- [IGameInputDevice (介面內容)](https://docs.xbox.com/zh-TW/reference/input/gameinput/interfaces/igameinputdevice/igameinputdevice.md)
- [IGameInputDevice::GetGamepadInfo](https://docs.xbox.com/zh-TW/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getgamepadinfo.md)
- [IGameInputDevice::GetTouchSurfaceInfo](https://docs.xbox.com/zh-TW/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_gettouchsurfaceinfo.md)
- [IGameInputDevice::GetDeviceFamily](https://docs.xbox.com/zh-TW/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getdevicefamily.md)
