Skip to main content

XUserAddAsync

Ajoute de façon asynchrone un utilisateur à une session de jeu.

Syntaxe

Paramètres

options   _In_
Type : XUserAddOptions
Options d’ajout d’un utilisateur à une session de jeu. async   _Inout_
Type : XAsyncBlock*
XAsyncBlock permettant d’interroger l’état de l’appel et de récupérer les résultats de l’appel.

Valeur de retour

Type : HRESULT Code de réussite ou d’erreur HRESULT. Pour obtenir la liste des codes d’erreur, consultez Codes d’erreur.

Remarques

XUserAddAsync démarre une opération asynchrone pour ajouter un utilisateur au jeu. Utilisez XUserAddResult pour récupérer les résultats de l’opération. XUserAddAsync affiche toujours une interface utilisateur de sélection de compte, sauf si XUserAddOptions::AddDefaultUserSilently ou XUserAddOptions::AddDefaultUserAllowingUI est passé au paramètre options. Si vous utilisez XUserAddOptions::AddDefaultUserSilently, XUserAddAsync n’affiche pas d’interface utilisateur. Certaines considérations s’appliquent à cette fonction lors de l’utilisation du modèle utilisateur simplifié (rubrique sous NDA) :
  • Avec le modèle utilisateur simplifié, les développeurs doivent s’assurer que options est défini sur XUserAddOptions::AddDefaultUserSilently :
  • Sur console, les jeux déployés de manière libre (loose) qui utilisent le modèle utilisateur simplifié ne peuvent pas être lancés si aucun utilisateur par défaut n’est déjà connecté.
  • Sur PC, les jeux déployés de manière libre (loose) qui utilisent le modèle utilisateur simplifié peuvent être lancés sans utilisateur ; toutefois, lorsque le jeu appelle XUserAddAsync, si personne n’est connecté, le jeu est arrêté et le programme d’amorçage PC (PC Bootstrapper) est lancé pour aider un utilisateur à se connecter. Les lancements suivants fonctionnent normalement tant que l’utilisateur est entièrement connecté à XBOX Live.
Il existe certains cas limites que les développeurs doivent connaître s’ils appellent de manière répétée XUserAddAsync avec options défini sur XUserAddOptions::AddDefaultUserSilently :
  • Si vous appelez cette fonction de manière répétée et que l’utilisateur par défaut qui a lancé le jeu est connu, elle retourne ce même utilisateur.
  • Si l’utilisateur par défaut précédemment connu s’est déconnecté et qu’un seul utilisateur est connecté sur l’appareil, elle marque cet utilisateur comme nouvel utilisateur « par défaut » et le retourne.
  • Si l’utilisateur par défaut précédemment connu s’est déconnecté et que plusieurs utilisateurs sont connectés sur l’appareil, elle retourne E_GAMEUSER_NO_DEFAULT_USER.
Si aucun utilisateur par défaut n’est disponible, XUserAddResult retourne E_GAMEUSER_NO_DEFAULT_USER. Vous devez appeler XUserAddAsync avec options non défini sur XUserAddOptions::AddDefaultUserSilently. Il existe également certains cas limites que les développeurs doivent connaître s’ils appellent de manière répétée XUserAddAsync avec options défini sur XUserAddOptions::AddDefaultUserAllowingUI. Ils sont très semblables (mais pas identiques) au cas silencieux :
  • Si vous appelez cette fonction de manière répétée et que l’utilisateur par défaut qui a lancé le jeu est connu, elle retourne ce même utilisateur.
  • Si l’utilisateur par défaut précédemment connu s’est déconnecté et qu’un seul utilisateur est connecté sur l’appareil, elle marque cet utilisateur comme nouvel utilisateur « par défaut » et le retourne.
  • Si l’utilisateur qui a initialement lancé le jeu s’est déconnecté et que le nombre d’utilisateurs est égal à 0 ou supérieur à 1, le système affiche une interface utilisateur pour obtenir l’utilisateur, puis définit cet utilisateur comme utilisateur par défaut.
Vous ne pouvez pas utiliser XUserAddOptions::AllowGuests avec XUserAddOptions::AddDefaultUserSilently. Un invité ne peut pas être l’utilisateur par défaut. Vous pouvez utiliser XUserAddOptions::AllowGuests en toute sécurité, que la plateforme actuelle prenne en charge les invités ou non. Vous devez fermer une seule fois chaque handle XUserHandle que vous récupérez à partir d’une API XUsers en appelant XUserCloseHandle. L’appairage des périphériques d’entrée est effectué une fois XUserAddAsync terminé avec succès. Si la connexion s’est produite automatiquement sans interface utilisateur en raison des options XUserAddOptions::AddDefaultUserSilently ou XUserAddOptions::AddDefaultUserAllowingUI, les périphériques d’entrée attribués à l’utilisateur dans le système sont propagés au titre. Si l’interface utilisateur a été affichée pour la connexion, le périphérique d’entrée qui a sélectionné l’utilisateur est attribué à cet utilisateur. L’association des appareils peut être suivie à l’aide de la méthode XUserRegisterForDeviceAssociationChanged. L’exemple suivant montre comment ajouter de façon asynchrone un utilisateur à une session de jeu.

Configuration requise

En-tête : XUser.h Bibliothèque : xgameruntime.lib Plateformes prises en charge : Windows, Steam Deck, consoles de la famille XBOX One et consoles XBOX Series

Documentation conceptuelle

Voir aussi

XUser XUserAddOptions XUserCloseHandle
Last modified on October 6, 2026