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

# XUserDeviceAssociationChange

> XUserDeviceAssociationChange

# XUserDeviceAssociationChange

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

## 语法

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

### 成员

*deviceId*\
类型：[APP\_LOCAL\_DEVICE\_ID](/reference/system/xuser/structs/app_local_device_id)

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

*oldUser*\
类型：[XUserLocalId](/reference/system/xuser/structs/xuserlocalid)

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

*newUser*\
类型：[XUserLocalId](/reference/system/xuser/structs/xuserlocalid)

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

## 备注

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

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

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

这些成员应被视为可以使用 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](/reference/system/xuser/functions/xuserdeviceassociationchangedcallback) 回调函数使用指向 XUserDeviceAssociationChange 结构的指针。

回调函数在回调注册时将上下文传递给 [XUserRegisterForDeviceAssociationChanged](/reference/system/xuser/functions/xuserregisterfordeviceassociationchanged) 函数。

[XUserRegisterForDeviceAssociationChanged](/reference/system/xuser/functions/xuserregisterfordeviceassociationchanged) 函数为用户设备关联更改事件注册回调。

## 要求

**头文件：** XUser.h

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

## 另请参阅

[XUser](/reference/system/xuser/xuser_members)

[XUserDeviceAssociationChangedCallback](/reference/system/xuser/functions/xuserdeviceassociationchangedcallback)

[XUserRegisterForDeviceAssociationChanged](/reference/system/xuser/functions/xuserregisterfordeviceassociationchanged)


## Related topics

- [XUserDeviceAssociationChangedCallback](/zh-CN/reference/system/xuser/functions/xuserdeviceassociationchangedcallback.md)
- [APP_LOCAL_DEVICE_ID](/zh-CN/reference/system/xuser/structs/app_local_device_id.md)
- [XUser](/zh-CN/reference/system/xuser/xuser_members.md)
- [XUserRegisterForDeviceAssociationChanged](/zh-CN/reference/system/xuser/functions/xuserregisterfordeviceassociationchanged.md)
- [XUserUnregisterForDeviceAssociationChanged](/zh-CN/reference/system/xuser/functions/xuserunregisterfordeviceassociationchanged.md)
