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

# XUserGetDefaultAudioEndpointUtf16

> XUserGetDefaultAudioEndpointUtf16

# XUserGetDefaultAudioEndpointUtf16

Récupère le point de terminaison audio par défaut d'un utilisateur spécifique.

## Syntaxe

```cpp theme={null}
HRESULT XUserGetDefaultAudioEndpointUtf16(  
         XUserLocalId user,  
         XUserDefaultAudioEndpointKind defaultAudioEndpointKind,  
         size_t endpointIdUtf16Count,  
         wchar_t* endpointIdUtf16,  
         size_t* endpointIdUtf16Used  
)  
```

### Paramètres

*user*   \
Type : [XUserLocalId](/fr/reference/system/xuser/structs/xuserlocalid)\
ID local de l'utilisateur dont le point de terminaison audio par défaut doit être obtenu.

*defaultAudioEndpointKind*   \
Type : [XUserDefaultAudioEndpointKind](/fr/reference/system/xuser/enums/xuserdefaultaudioendpointkind)\
Valeur d'énumération qui indique si le point de terminaison audio par défaut de l'utilisateur effectue le rendu ou la capture de l'audio.

*endpointIdUtf16Count*   \
Type : size\_t\
Nombre de wchar\_t de la mémoire tampon vers laquelle pointe le paramètre *endpointIdUtf16*. Passez **XUserAudioEndpointMaxUtf16Count**.

*endpointIdUtf16*   \_Out\_writes\_to\_(endpointIdUtf16Count,*endpointIdUtf16Used)\
Type : wchar\_t*\
Contient l'ID du point de terminaison audio par défaut de l'utilisateur.

*endpointIdUtf16Used*   \_Out\_opt\_\
Type : size\_t\*

Contient le nombre réel de wchar\_t de l'ID retourné par le paramètre *endpointIdUtf16*.

### Valeur de retour

Type : HRESULT

Retourne S\_OK en cas de réussite ; sinon, retourne un code d'erreur.
Pour obtenir la liste des codes d'erreur, consultez [Codes d'erreur](/fr/reference/errorcodes).

## Remarques

<Note>Il n'est pas sûr d'appeler cette fonction sur un thread à durée critique. Pour plus d'informations, consultez [Threads à durée critique](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads).</Note>

La fonction XUserGetDefaultAudioEndpointUtf16 prend comme argument une énumération [XUserDefaultAudioEndpointKind](/fr/reference/system/xuser/enums/xuserdefaultaudioendpointkind).

La fonction de rappel [XUserDefaultAudioEndpointUtf16ChangedCallback](/fr/reference/system/xuser/functions/xuserdefaultaudioendpointutf16changedcallback) est appelée lorsque le point de terminaison audio par défaut d'un utilisateur spécifique change.

Pour vous inscrire afin de recevoir un rappel lorsque le point de terminaison audio par défaut change, appelez [XUserRegisterForDefaultAudioEndpointUtf16Changed](/fr/reference/system/xuser/functions/xuserregisterfordefaultaudioendpointutf16changed).

Pour annuler l'inscription à la réception d'un rappel lorsque le point de terminaison audio par défaut change, appelez [XUserUnregisterForDefaultAudioEndpointUtf16Changed](/fr/reference/system/xuser/functions/xuserunregisterfordefaultaudioendpointutf16changed).

L'exemple suivant montre comment 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

**Bibliothèque :** xgameruntime.lib

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

## Documentation conceptuelle

* [Threads à durée critique](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)

## Voir aussi

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

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

[XUserRegisterForDefaultAudioEndpointUtf16Changed](/fr/reference/system/xuser/functions/xuserregisterfordefaultaudioendpointutf16changed)

[XUserUnregisterForDefaultAudioEndpointUtf16Changed](/fr/reference/system/xuser/functions/xuserunregisterfordefaultaudioendpointutf16changed)


## Related topics

- [XUserGetDefaultAudioEndpointUtf16](/reference/system/xuser/functions/xusergetdefaultaudioendpointutf16.md)
- [XUserDefaultAudioEndpointKind](/zh-CN/reference/system/xuser/enums/xuserdefaultaudioendpointkind.md)
- [XUserLocalId](/es/reference/system/xuser/structs/xuserlocalid.md)
- [Users and input devices](/build/core-features/common/user/users-input-devices.md)
- [Usuarios y dispositivos de entrada](/es/build/core-features/common/user/users-input-devices.md)
