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

# XUserLocalId

> XUserLocalId

# XUserLocalId

Especifica uma ID de sessão de jogo para um usuário.

## Sintaxe

```cpp theme={null}
typedef struct XUserLocalId {  
    uint64_t value;  
} XUserLocalId  
```

### Membros

*value*\
Tipo: uint64\_t

A ID de sessão de jogo de um usuário.

## Comentários

O XUserLocalId identifica exclusivamente um usuário dentro de uma sessão de jogo. Se duplicarmos **XUserHandle**, ambos os identificadores manterão o mesmo XUserLocalId. Quando uma sessão de jogo termina, o mesmo usuário pode ter XUserLocalIds diferentes na próxima sessão. Não é possível usar essas IDs para rastrear usuários entre sessões de jogo. As IDs são válidas por sessão de jogo.

Um XUserLocalId "nulo" será igual ao valor de **XUserNullUserLocalId**.

As seguintes funções de retorno de chamada e funções recebem uma estrutura XUserLocalId ou um ponteiro para ela como argumento:

* [XUserChangeEventCallback](/pt-BR/reference/system/xuser/functions/xuserchangeeventcallback): uma função de retorno de chamada para um evento de alteração de usuário.
* [XUserDefaultAudioEndpointUtf16ChangedCallback](/pt-BR/reference/system/xuser/functions/xuserdefaultaudioendpointutf16changedcallback): um retorno de chamada invocado quando o ponto de extremidade de áudio padrão de um usuário é alterado.
* [XUserFindUserByLocalId](/pt-BR/reference/system/xuser/functions/xuserfinduserbylocalid): uma função que usa uma ID local específica para recuperar um identificador para um usuário.
* [XUserGetDefaultAudioEndpointUtf16](/pt-BR/reference/system/xuser/functions/xusergetdefaultaudioendpointutf16): uma função que recupera o ponto de extremidade de áudio padrão de um usuário específico.
* [XUserGetLocalId](/pt-BR/reference/system/xuser/functions/xusergetlocalid): uma função que recupera a ID de sessão de jogo exclusiva de um usuário.

O exemplo a seguir demonstra como usar a estrutura XUserLocalId para recuperar o ponto de extremidade de áudio padrão de um usuário.

```cpp theme={null}
HRESULT GetAudioDeviceAssociation(
    IMMDeviceEnumerator* audioDeviceEnumerator,
    XUserLocalId user,
    XUserDefaultAudioEndpointKind defaultAudioEndpointKind,
    _Outptr_result_maybenull_ IMMDevice** endpoint)
{
    wchar_t audioDeviceId[XUserAudioEndpointMaxUtf16Count];
    RETURN_IF_FAILED_WITH_EXPECTED(XUserGetDefaultAudioEndpointUtf16(user, defaultAudioEndpointKind, std::size(audioDeviceId), audioDeviceId, nullptr), E_NOTFOUND);

    return audioDeviceEnumerator->GetDevice(audioDeviceId, endpoint);
}

HRESULT GetAudioAssociations()
{
    Mwrl::ComPtr<IMMDeviceEnumerator> audioDeviceEnumerator;

    RETURN_IF_FAILED(CoCreateInstance(
        __uuidof(MMDeviceEnumerator),
        nullptr,
        CLSCTX_ALL,
        __uuidof(IMMDeviceEnumerator),
        (void**)&audioDeviceEnumerator));

    XUserLocalId userLocalId;
    RETURN_IF_FAILED(XUserGetLocalId(_handle.get(), &userLocalId));

    {
        wil::unique_cotaskmem_string id;
        Mwrl::ComPtr<IMMDevice> device;
        if (SUCCEEDED(GetAudioDeviceAssociation(audioDeviceEnumerator.Get(), userLocalId, XUserDefaultAudioEndpointKind::CommunicationRender, &device)))
        {
            RETURN_IF_FAILED(device->GetId(&id));
        }
        appLog.AddLog("Preferred render communication device id: %S\n", id.get());
    }

    {
        wil::unique_cotaskmem_string id;
        Mwrl::ComPtr<IMMDevice> device;
        if (SUCCEEDED(GetAudioDeviceAssociation(audioDeviceEnumerator.Get(), userLocalId, XUserDefaultAudioEndpointKind::CommunicationCapture, &device)))
        {
            RETURN_IF_FAILED(device->GetId(&id));
        }
        appLog.AddLog("Preferred capture communication device id: %S\n", id.get());
    }

    return S_OK;
}
```

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

[XUserChangeEventCallback](/pt-BR/reference/system/xuser/functions/xuserchangeeventcallback)

[XUserDefaultAudioEndpointUtf16ChangedCallback](/pt-BR/reference/system/xuser/functions/xuserdefaultaudioendpointutf16changedcallback)

[XUserFindUserByLocalId](/pt-BR/reference/system/xuser/functions/xuserfinduserbylocalid)

[XUserGetDefaultAudioEndpointUtf16](/pt-BR/reference/system/xuser/functions/xusergetdefaultaudioendpointutf16)

[XUserGetLocalId](/pt-BR/reference/system/xuser/functions/xusergetlocalid)


## Related topics

- [XUserLocalId](/reference/system/xuser/structs/xuserlocalid.md)
- [XUserGetLocalId](/reference/system/xuser/functions/xusergetlocalid.md)
- [XUserFindUserByLocalId](/reference/system/xuser/functions/xuserfinduserbylocalid.md)
