> ## 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 un identificador de sesión de juego para un usuario.

## Sintaxis

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

### Miembros

*value*\
Tipo: uint64\_t

El identificador de sesión de juego para un usuario.

## Comentarios

El XUserLocalId identifica de forma única a un usuario dentro de una sesión de juego. Si duplicamos **XUserHandle**, ambos identificadores mantienen el mismo XUserLocalId. Una vez que finaliza una sesión de juego, el mismo usuario puede tener un XUserLocalId diferente en la siguiente sesión. No puede usar estos identificadores para realizar el seguimiento de los usuarios entre sesiones de juego. Los identificadores son válidos por sesión de juego.

Un XUserLocalId "null" será igual al valor de **XUserNullUserLocalId**.

Las siguientes funciones de devolución de llamada y funciones toman una estructura XUserLocalId o un puntero a una como argumento:

* [XUserChangeEventCallback](/reference/system/xuser/functions/xuserchangeeventcallback): una función de devolución de llamada para un evento de cambio de usuario.
* [XUserDefaultAudioEndpointUtf16ChangedCallback](/reference/system/xuser/functions/xuserdefaultaudioendpointutf16changedcallback): una devolución de llamada que se invoca cuando cambia el punto de conexión de audio predeterminado para un usuario.
* [XUserFindUserByLocalId](/reference/system/xuser/functions/xuserfinduserbylocalid): una función que usa un identificador local específico para recuperar un identificador de un usuario.
* [XUserGetDefaultAudioEndpointUtf16](/reference/system/xuser/functions/xusergetdefaultaudioendpointutf16): una función que recupera el punto de conexión de audio predeterminado para un usuario específico.
* [XUserGetLocalId](/reference/system/xuser/functions/xusergetlocalid): una función que recupera el identificador de sesión de juego único para un usuario.

En el ejemplo siguiente se muestra cómo usar la estructura XUserLocalId para recuperar el punto de conexión de audio predeterminado para un usuario.

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

**Encabezado:** XUser.h

**Plataformas compatibles:** Windows, consolas de la familia XBOX One y consolas XBOX Series

## Consulte también

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

[XUserChangeEventCallback](/reference/system/xuser/functions/xuserchangeeventcallback)

[XUserDefaultAudioEndpointUtf16ChangedCallback](/reference/system/xuser/functions/xuserdefaultaudioendpointutf16changedcallback)

[XUserFindUserByLocalId](/reference/system/xuser/functions/xuserfinduserbylocalid)

[XUserGetDefaultAudioEndpointUtf16](/reference/system/xuser/functions/xusergetdefaultaudioendpointutf16)

[XUserGetLocalId](/reference/system/xuser/functions/xusergetlocalid)


## Related topics

- [XUserGetLocalId](/es/reference/system/xuser/functions/xusergetlocalid.md)
- [XUserFindUserByLocalId](/es/reference/system/xuser/functions/xuserfinduserbylocalid.md)
- [APP_LOCAL_DEVICE_ID](/es/reference/system/xuser/structs/app_local_device_id.md)
- [XUserDeviceAssociationChange](/es/reference/system/xuser/structs/xuserdeviceassociationchange.md)
- [XUserChangeEventCallback](/es/reference/system/xuser/functions/xuserchangeeventcallback.md)
