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*
Un 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 lorsque vous utilisez le 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 en mode libre (loose) qui utilisent le modèle utilisateur simplifié ne pourront pas être lancés à moins qu’un utilisateur par défaut ne soit déjà connecté.
  • Sur PC, les jeux déployés en mode 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 sera arrêté et le programme d’amorçage PC (PC Bootstrapper) sera lancé pour aider un utilisateur à se connecter. Les lancements subséquents fonctionneront correctement 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 à répétition XUserAddAsync avec options défini sur XUserAddOptions::AddDefaultUserSilently :
  • Si vous appelez cette fonction à répétition 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 à répétition XUserAddAsync avec options défini sur XUserAddOptions::AddDefaultUserAllowingUI. Ils sont très semblables (mais pas identiques) au cas silencieux :
  • Si vous appelez cette fonction à répétition 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 de 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 chaque handle XUserHandle que vous récupérez à partir d’une API XUsers une seule fois en appelant XUserCloseHandle. L’association des périphériques d’entrée est effectuée une fois XUserAddAsync terminée avec succès. Si la connexion s’est faite 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 au moyen 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