Skip to main content

XUserAddAsync

Agrega de forma asincrónica un usuario a una sesión de juego.

Sintaxis

Parámetros

options   _In_
Tipo: XUserAddOptions
Opciones para agregar un usuario a una sesión de juego. async   _Inout_
Tipo: XAsyncBlock*
Un XAsyncBlock para sondear el estado de la llamada y recuperar los resultados de la llamada.

Valor devuelto

Tipo: HRESULT Código de error o de operación correcta HRESULT. Para obtener una lista de códigos de error, consulte Códigos de error.

Comentarios

XUserAddAsync inicia una operación asincrónica para agregar un usuario al juego. Use XUserAddResult para recuperar los resultados de la operación. XUserAddAsync siempre muestra una interfaz de usuario del selector de cuentas a menos que se pase XUserAddOptions::AddDefaultUserSilently o XUserAddOptions::AddDefaultUserAllowingUI al parámetro options. Si usa XUserAddOptions::AddDefaultUserSilently, XUserAddAsync no muestra ninguna interfaz de usuario. Hay algunas consideraciones con esta función al usar el modelo de usuario simplificado (tema NDA):
  • Con el modelo de usuario simplificado, los desarrolladores deben asegurarse de que options esté establecido en XUserAddOptions::AddDefaultUserSilently:
  • En consola, los juegos implementados de forma dispersa que usan el modelo de usuario simplificado no podrán iniciarse a menos que ya haya un usuario predeterminado con sesión iniciada.
  • En PC, los juegos implementados de forma dispersa que usan el modelo de usuario simplificado se pueden iniciar sin un usuario; sin embargo, cuando el juego llame a XUserAddAsync, si nadie ha iniciado sesión, el juego se terminará y se iniciará el arrancador de PC para ayudar a que un usuario inicie sesión. Los inicios posteriores funcionarán sin problemas siempre que el usuario tenga la sesión totalmente iniciada en XBOX Live.
Hay algunos casos extremos que los desarrolladores deben conocer si llaman repetidamente a XUserAddAsync con options establecido en XUserAddOptions::AddDefaultUserSilently:
  • Si llama a esta función repetidamente y se conoce el usuario predeterminado que inició el juego, devolverá ese mismo usuario.
  • Si el usuario predeterminado conocido anteriormente ha cerrado sesión y solo hay un usuario con sesión iniciada en el dispositivo, marcará a ese usuario como el nuevo usuario “predeterminado” y lo devolverá.
  • Si el usuario predeterminado conocido anteriormente ha cerrado sesión y hay varios usuarios con sesión iniciada en el dispositivo, devolverá E_GAMEUSER_NO_DEFAULT_USER.
Si no hay disponible un usuario predeterminado, XUserAddResult devuelve E_GAMEUSER_NO_DEFAULT_USER. Debe llamar a XUserAddAsync con options no establecido en XUserAddOptions::AddDefaultUserSilently. También hay algunos casos extremos que los desarrolladores deben conocer si llaman repetidamente a XUserAddAsync con options establecido en XUserAddOptions::AddDefaultUserAllowingUI. Son muy similares (pero no idénticos) al caso de interfaz de usuario silenciosa:
  • Si llama a esta función repetidamente y se conoce el usuario predeterminado que inició el juego, devolverá ese mismo usuario.
  • Si el usuario predeterminado conocido anteriormente ha cerrado sesión y solo hay un usuario con sesión iniciada en el dispositivo, marcará a ese usuario como el nuevo usuario “predeterminado” y lo devolverá.
  • Si el usuario que inició inicialmente el juego ha cerrado sesión y el número de usuarios es 0 o más de 1, el sistema mostrará una interfaz de usuario para obtener el usuario y, a continuación, establecerá a ese usuario como el predeterminado.
No puede usar XUserAddOptions::AllowGuests con XUserAddOptions::AddDefaultUserSilently. Un invitado no puede ser el usuario predeterminado. Puede usar de forma segura XUserAddOptions::AllowGuests independientemente de si la plataforma actual admite invitados. Debe cerrar cada identificador XUserHandle que recupere de una API de XUsers una sola vez llamando a XUserCloseHandle. El emparejamiento de dispositivos de entrada se realiza cuando XUserAddAsync se completa correctamente. Si el inicio de sesión se produjo automáticamente sin interfaz de usuario debido a las opciones XUserAddOptions::AddDefaultUserSilently o XUserAddOptions::AddDefaultUserAllowingUI, los dispositivos de entrada asignados al usuario en el sistema se propagan al título. Si se mostró la interfaz de usuario para el inicio de sesión, el dispositivo de entrada que seleccionó al usuario se asigna a ese usuario. La asociación de dispositivos se puede realizar un seguimiento a través del método XUserRegisterForDeviceAssociationChanged. El siguiente ejemplo muestra cómo agregar de forma asincrónica un usuario a una sesión de juego.

Requisitos

Encabezado: XUser.h Biblioteca: xgameruntime.lib Plataformas compatibles: Windows, Steam Deck, consolas de la familia XBOX One y consolas XBOX Series

Documentación conceptual

Consulte también

XUser XUserAddOptions XUserCloseHandle
Última modificación el 28 de agosto de 2026