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

Spécifie un ID de session de jeu pour un utilisateur.

## Syntaxe

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

### Membres

*value*\
Type : uint64\_t

L'ID de session de jeu d'un utilisateur.

## Remarques

XUserLocalId identifie de façon unique un utilisateur au sein d'une session de jeu. Si nous dupliquons **XUserHandle**, les deux handles conservent le même XUserLocalId. Une fois qu'une session de jeu se termine, le même utilisateur peut avoir un XUserLocalId différent lors de la session suivante. Vous ne pouvez pas utiliser ces ID pour suivre les utilisateurs d'une session de jeu à l'autre. Les ID sont valides pour chaque session de jeu.

Un XUserLocalId « nul » sera égal à la valeur de **XUserNullUserLocalId**.

Les fonctions de rappel et la fonction suivantes prennent comme argument une structure XUserLocalId ou un pointeur vers une telle structure :

* [XUserChangeEventCallback](/fr-CA/reference/system/xuser/functions/xuserchangeeventcallback) : une fonction de rappel pour un événement de modification d'utilisateur.
* [XUserDefaultAudioEndpointUtf16ChangedCallback](/fr-CA/reference/system/xuser/functions/xuserdefaultaudioendpointutf16changedcallback) : un rappel qui est appelé lorsque le point de terminaison audio par défaut d'un utilisateur change.
* [XUserFindUserByLocalId](/fr-CA/reference/system/xuser/functions/xuserfinduserbylocalid) : une fonction qui utilise un ID local spécifique pour récupérer un handle vers un utilisateur.
* [XUserGetDefaultAudioEndpointUtf16](/fr-CA/reference/system/xuser/functions/xusergetdefaultaudioendpointutf16) : une fonction qui récupère le point de terminaison audio par défaut d'un utilisateur spécifique.
* [XUserGetLocalId](/fr-CA/reference/system/xuser/functions/xusergetlocalid) : une fonction qui récupère l'ID de session de jeu unique d'un utilisateur.

L'exemple suivant montre comment utiliser la structure XUserLocalId pour récupérer le point de terminaison audio par défaut d'un utilisateur.

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

## Configuration requise

**En-tête :** XUser.h

**Plateformes prises en charge :** Windows, consoles de la famille XBOX One et consoles XBOX Series

## Voir aussi

[XUser](/fr-CA/reference/system/xuser/xuser_members)

[XUserChangeEventCallback](/fr-CA/reference/system/xuser/functions/xuserchangeeventcallback)

[XUserDefaultAudioEndpointUtf16ChangedCallback](/fr-CA/reference/system/xuser/functions/xuserdefaultaudioendpointutf16changedcallback)

[XUserFindUserByLocalId](/fr-CA/reference/system/xuser/functions/xuserfinduserbylocalid)

[XUserGetDefaultAudioEndpointUtf16](/fr-CA/reference/system/xuser/functions/xusergetdefaultaudioendpointutf16)

[XUserGetLocalId](/fr-CA/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)
