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

Especifica as associações de dispositivo antigas e novas quando uma associação de dispositivo é alterada.

## Sintaxe

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

### Membros

*deviceId*\
Tipo: [APP\_LOCAL\_DEVICE\_ID](/pt-BR/reference/system/xuser/structs/app_local_device_id)

A ID do dispositivo cuja associação de usuário é alterada.

*oldUser*\
Tipo: [XUserLocalId](/pt-BR/reference/system/xuser/structs/xuserlocalid)

A ID de usuário antiga associada ao dispositivo.

*newUser*\
Tipo: [XUserLocalId](/pt-BR/reference/system/xuser/structs/xuserlocalid)

A nova ID de usuário associada ao dispositivo.

## Comentários

Todos os argumentos de XUserDeviceAssociationChange podem ser "nulos":

* Se deviceId for igual a **XUserNullDeviceId**, a alteração de usuário se aplicará a todos os dispositivos, em que todos os dispositivos têm associações com um usuário conectado.
* Se oldUser for igual a **XUserNullUserLocalId**, a associação dispositivo-usuário será nova.
* Se newUser for igual a **XUserNullUserLocalId**, a associação dispositivo-usuário existente será perdida.

<Note>*newUser* só pode referenciar usuários que já foram adicionados ao título por meio de uma chamada para [XUserAddAsync](/pt-BR/reference/system/xuser/functions/xuseraddasync). Se o seletor do sistema tiver sido usado para emparelhar um dispositivo de entrada a um usuário que o título não conhece, newUser será igual a **XUserNullUserLocalId**. Consulte [Usuários e dispositivos de entrada](/pt-BR/build/core-features/common/user/users-input-devices) para obter mais informações.</Note>

Esses membros devem ser tratados como uma estrutura de bytes brutos que pode ser comparada usando memcmp ou um método equivalente.  Por exemplo:

```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))
{
}
```

A função de retorno de chamada [XUserDeviceAssociationChangedCallback](/pt-BR/reference/system/xuser/functions/xuserdeviceassociationchangedcallback) usa um ponteiro para uma estrutura XUserDeviceAssociationChange.

A função de retorno de chamada passa o contexto para a função [XUserRegisterForDeviceAssociationChanged](/pt-BR/reference/system/xuser/functions/xuserregisterfordeviceassociationchanged) quando o retorno de chamada é registrado.

A função [XUserRegisterForDeviceAssociationChanged](/pt-BR/reference/system/xuser/functions/xuserregisterfordeviceassociationchanged) registra um retorno de chamada para eventos de alteração de associação de dispositivo do usuário.

## Requisitos

**Cabeçalho:** XUser.h

**Plataformas compatíveis:** Windows, consoles da família XBOX One e consoles XBOX Series

## Confira também

[XUser](/pt-BR/reference/system/xuser/xuser_members)

[XUserDeviceAssociationChangedCallback](/pt-BR/reference/system/xuser/functions/xuserdeviceassociationchangedcallback)

[XUserRegisterForDeviceAssociationChanged](/pt-BR/reference/system/xuser/functions/xuserregisterfordeviceassociationchanged)


## Related topics

- [XUserDeviceAssociationChange](/reference/system/xuser/structs/xuserdeviceassociationchange.md)
- [XUserDeviceAssociationChangedCallback](/reference/system/xuser/functions/xuserdeviceassociationchangedcallback.md)
