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

# XUserDeviceAssociationChange

> XUserDeviceAssociationChange

# XUserDeviceAssociationChange

指定当设备关联发生更改时旧的和新的设备关联。

## 语法

```cpp theme={null}
typedef struct XUserDeviceAssociationChange {  
    APP_LOCAL_DEVICE_ID deviceId;  
    XUserLocalId oldUser;  
    XUserLocalId newUser;  
} XUserDeviceAssociationChange  
```

### 成员

*deviceId*\
类型：[APP\_LOCAL\_DEVICE\_ID](https://docs.xbox.com/zh-CN/reference/system/xuser/structs/app_local_device_id.md)

用户关联发生更改的设备的 ID。

*oldUser*\
类型：[XUserLocalId](https://docs.xbox.com/zh-CN/reference/system/xuser/structs/xuserlocalid.md)

与该设备关联的旧用户 ID。

*newUser*\
类型：[XUserLocalId](https://docs.xbox.com/zh-CN/reference/system/xuser/structs/xuserlocalid.md)

与该设备关联的新用户 ID。

## 备注

XUserDeviceAssociationChange 的所有参数都可以为 "null"：

* 如果 deviceId 等于 **XUserNullDeviceId**，则用户更改适用于所有设备，其中所有设备都与已登录的用户存在关联。
* 如果 oldUser 等于 **XUserNullUserLocalId**，则该设备与用户的关联是新的。
* 如果 newUser 等于 **XUserNullUserLocalId**，则现有的设备与用户关联已丢失。

> [!NOTE]
>
> *newUser* 只能引用之前已通过调用 [XUserAddAsync](https://docs.xbox.com/zh-CN/reference/system/xuser/functions/xuseraddasync.md) 添加到游戏中的用户。如果使用系统选择器将输入设备与游戏未知的用户配对，则 newUser 将等于 **XUserNullUserLocalId**。有关详细信息，请参阅[用户和输入设备](https://docs.xbox.com/zh-CN/build/core-features/common/user/users-input-devices.md)。

这些成员应被视为可以使用 memcmp 或等效方法进行比较的原始字节结构。例如：

```cpp theme={null}
XUserDeviceAssociationChange *change; // incoming argument from callback

if(memcmp(&change->deviceId, &XUserNullDeviceId, sizeof(APP_LOCAL_DEVICE_ID) == 0))
{
}

if(memcmp(&change->newUser, &XUserNullUserLocalId, sizeof(XUserLocalId) == 0))
{
}
```

[XUserDeviceAssociationChangedCallback](https://docs.xbox.com/zh-CN/reference/system/xuser/functions/xuserdeviceassociationchangedcallback.md) 回调函数使用指向 XUserDeviceAssociationChange 结构的指针。

回调函数在回调注册时将上下文传递给 [XUserRegisterForDeviceAssociationChanged](https://docs.xbox.com/zh-CN/reference/system/xuser/functions/xuserregisterfordeviceassociationchanged.md) 函数。

[XUserRegisterForDeviceAssociationChanged](https://docs.xbox.com/zh-CN/reference/system/xuser/functions/xuserregisterfordeviceassociationchanged.md) 函数为用户设备关联更改事件注册回调。

## 要求

**头文件：** XUser.h

**支持的平台：** Windows、XBOX One 系列主机和 XBOX Series 主机

## 另请参阅

[XUser](https://docs.xbox.com/zh-CN/reference/system/xuser/xuser_members.md)

[XUserDeviceAssociationChangedCallback](https://docs.xbox.com/zh-CN/reference/system/xuser/functions/xuserdeviceassociationchangedcallback.md)

[XUserRegisterForDeviceAssociationChanged](https://docs.xbox.com/zh-CN/reference/system/xuser/functions/xuserregisterfordeviceassociationchanged.md)


## Related topics

- [XUserDeviceAssociationChangedCallback](https://docs.xbox.com/zh-CN/reference/system/xuser/functions/xuserdeviceassociationchangedcallback.md)
- [APP_LOCAL_DEVICE_ID](https://docs.xbox.com/zh-CN/reference/system/xuser/structs/app_local_device_id.md)
- [XUser（API 内容）](https://docs.xbox.com/zh-CN/reference/system/xuser/xuser_members.md)
- [XUserUnregisterForDeviceAssociationChanged](https://docs.xbox.com/zh-CN/reference/system/xuser/functions/xuserunregisterfordeviceassociationchanged.md)
- [XUserRegisterForDeviceAssociationChanged](https://docs.xbox.com/zh-CN/reference/system/xuser/functions/xuserregisterfordeviceassociationchanged.md)
