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

# Contenedores de API de C# de Unity para el GDK

> Referencia del espacio de nombres XGamingRuntime de C# en el paquete del GDK para Unity: convenciones de nomenclatura, control de HRESULT, patrones asincrónicos y ejemplos nativos frente a administrados.

Use este tema para comprender cómo usar los contenedores de API para llamar correctamente a las API de Microsoft Game Development Kit (GDK) y de los servicios de XBOX desde código administrado.

## Acceso a las API de Microsoft Game Development Kit (GDK)

Después de importar el paquete de API de Microsoft GDK desde Unity, su funcionalidad está disponible en el espacio de nombres XGamingRuntime. Todas las API de Gaming Runtime están disponibles mediante métodos estáticos en la clase SDK. Todas las API de los servicios de XBOX están disponibles mediante métodos estáticos en la clase SDK.XBL. En el ejemplo siguiente se muestra esta disponibilidad.

```cpp theme={null}
using System;

// The namespace under which the "GDK" functionality is available.

using XGamingRuntime;

namespace TestGame
{
    static class Program
    {
        static void Main()
        {
            // All APIs are accessed through static methods on the SDK class.
            Int32 hr = SDK.XGameRuntimeInitialize();

            // All Xbox services APIs are accessed through static methods on the SDK.XBL class.
            Int32 hr = SDK.XBL.XblInitialize(SCID);
            ...
        }
    }
}
```

## Cobertura y convenciones de las API

<Note>
  No todas las API están disponibles a través del paquete. Para obtener una lista completa de estas API, consulte las listas de API de Microsoft Game Development Kit (GDK) y de los servicios de XBOX más adelante en este tema.
</Note>

Convenciones:

* Los nombres de las API coinciden con sus equivalentes del GDK siempre que es posible.
* Sin excepciones. Los errores se comunican mediante HRESULT.
* Superficie de API plana sin encapsulación orientada a objetos.
* Se usan parámetros out en las API que establecen parámetros.
* Los métodos asincrónicos usan devoluciones de llamada. Para obtener más información, consulte la sección siguiente.

## Modelo de programación asincrónica

La mayoría de las API asincrónicas aceptan una devolución de llamada como último parámetro. A continuación se muestra un ejemplo.

```cpp theme={null}
using System;

using XGamingRuntime;

class SignInManager
{
    public void AddUser()
    {
        SDK.XUserAddAsync(XUserAddOptions.None, this.OnUserAddComplete);
    }

    private void OnUserAddComplete(Int32 hresult, XUserHandle userHandle)
    {
        // Check the result, and then do something with the handle.
    }
}
```

La información sobre el modelo de subprocesos es la siguiente.

* Los métodos asincrónicos se ejecutan inmediatamente y el trabajo se realiza en un subproceso disponible del grupo de subprocesos.
  * El grupo de subprocesos se inicializa internamente después de realizar una llamada a SDK.XGameRuntimeInitialize().
  * No se exponen opciones de configuración del grupo de subprocesos.
* La devolución de llamada de resultado se invoca después de que se llame a dispatch (es decir, SDK.XTaskQueueDispatch()). Como consecuencia, es importante que dispatch se *llame con frecuencia*, idealmente durante el bucle de actualización del juego.
* La devolución de llamada de resultado se ejecuta en el subproceso que invocó dispatch.

## Ejemplos de diferencias entre las API nativas y los contenedores administrados

Las API nativas y los contenedores administrados tienen diferencias mínimas. Como referencia, los dos ejemplos siguientes muestran las funciones de firma y llamada de **XUserAddAsync** y **XblAchievementsUpdateAchievementAsync** en código administrado y nativo.

### Ejemplo de XUserAddAsync

La firma nativa de XUserAddAsync es la siguiente.

```cpp theme={null}
STDAPI XUserAddAsync(
    _In_ XUserAddOptions options,
    _Inout_ XAsyncBlock* async
    ) noexcept;

STDAPI XUserAddResult(
    _Inout_ XAsyncBlock* async,
    _Out_ XUserHandle* newUser
    ) noexcept;
```

Mientras que la firma administrada de XUserAddAsync es:

```csharp theme={null}
public static void XGamingRuntime.SDK.XUserAddAsync(
    XUserAddOptions options,
    XUserAddCompleted completionRoutine
);

public delegate void XUserAddCompleted(Int32 hresult, XUserHandle userHandle);
```

A continuación se muestra un ejemplo de cómo llamar a las funciones de XUserAddAsync en código nativo.

```cpp theme={null}
auto asyncBlock = std::make_unique<XAsyncBlock>();
ZeroMemory(asyncBlock.get(), sizeof(*asyncBlock));
asyncBlock->queue = _queue;
asyncBlock->context = this;
asyncBlock->callback = [](XAsyncBlock* ab)
{
    auto asyncBlock = std::unique_ptr<XAsyncBlock>(ab);
    XUserHandle user;
    RETURN_IF_FAILED(XUserAddResult(ab, &user));
};

if (SUCCEEDED_LOG(XUserAddAsync(
    XUserAddOptions::AddDefaultUserAllowingUI,
    asyncBlock.get())))
{
    // The call succeeded, so release the std::unique_ptr ownership of XAsyncBlock* because the callback will take over ownership.
    // If the call fails, the std::unique_ptr will keep ownership and delete the XAsyncBlock*
    asyncBlock.release();
}
```

Mientras que el ejemplo administrado de llamada a las funciones de XUserAddAsync es:

```csharp theme={null}
Managed add user

SDK.XUserAddAsync(
    XUserAddOptions.AddDefaultUserAllowingUI,
    (hr, userHandle) =>
    {
        LOG("XUserAddAsync", hr);
        if (hr >= 0)
        {
            this.userHandle = userHandle;
            // Sign-in succeeded.
        }
        else
        {
            // Sign-in failed.
        }
    }
);
```

Si prefiere usar una cola personalizada, o si la API no incluye una implementación de devolución de llamada, el ejemplo siguiente muestra cómo crear un XAsyncBlock. También debe garantizar el envío y la finalización correctos de la cola. Para obtener más información, consulte [Información general de la biblioteca XTaskQueue](/build/core-features/common/async/async-libraries/async-library-xtaskqueue).

```csharp theme={null}

XAsyncBlock xAsyncBlock = new XAsyncBlock(queue, (_async) =>
{
    XUserHandle userHandle;
    int hr = SDK.XUserAddResult(_async, out userHandle);

    if (hr >= 0)
    {
        this.userHandle = userHandle;
        // Sign-in succeeded.
    }
    else
    {
        // Sign-in failed.
    }
}, IntPtr.Zero);

SDK.XUserAddAsync(XUserAddOptions.AddDefaultUserAllowingUI, xAsyncBlock);
```

### Ejemplo de XblAchievementsUpdateAchievementAsync

La firma nativa de XblAchievementsUpdateAchievementAsync es la siguiente.

```cpp theme={null}
STDAPI XblAchievementsUpdateAchievementAsync(
    _In_ XblContextHandle xboxLiveContext,
    _In_ uint64_t xboxUserId,
    _In_z_ const char* achievementId,
    _In_ uint32_t percentComplete,
    _In_ XAsyncBlock* async
) XBL_NOEXCEPT;
```

Mientras que la firma administrada de XblAchievementsUpdateAchievementAsync es:

```csharp theme={null}
public static void XGamingRuntime.SDK.XBL.XblAchievementsUpdateAchievementAsync(
    XblContextHandle xboxLiveContext,
    UInt64 xboxUserId,
    string achievementId,
    UInt32 percentComplete,
    XblAchievementsUpdateAchievementResult completionRoutine);

public delegate void XblAchievementsUpdateAchievementResult(Int32 hresult);
```

A continuación se muestra un ejemplo de cómo llamar a las funciones de XblAchievementsUpdateAchievementAsync en código nativo.

```cpp theme={null}
auto asyncBlock = std::make_unique<XAsyncBlock>();
asyncBlock->queue = Data()->queue;
asyncBlock->context = nullptr;
asyncBlock->callback = [](XAsyncBlock* asyncBlock)
{
    std::unique_ptr<XAsyncBlock> asyncBlockPtr{ asyncBlock }; // Take over ownership of the XAsyncBlock*
    auto result = XAsyncGetStatus(asyncBlock, false);
    if (SUCCEEDED(result))
    {
        // Achievement updated.
    }
    else if (result == HTTP_E_STATUS_NOT_MODIFIED)
    {
        // Achievement isn't modified.
    }
    else
    {
        // Achievement failed to update.
    }
};

HRESULT hr = XblAchievementsUpdateAchievementAsync(
    Data()->xboxLiveContext,
    Data()->xboxUserId,
    achievementId.c_str(),
    percentComplete,
    asyncBlock.get()
);
if (SUCCEEDED(hr))
{
    // The call succeeded, so release the std::unique_ptr ownership of XAsyncBlock* because the callback will take over ownership.
    // If the call fails, the std::unique_ptr will keep ownership and delete the XAsyn-cBlock*
    asyncBlock.release();
}
```

Mientras que el ejemplo administrado de llamada a las funciones de XblAchievementsUpdateAchievementAsync es:

```csharp theme={null}
SDK.XBL.XblAchievementsUpdateAchievementAsync(
    xblContextHandle,
    xboxUserId,
    achievementId,
    percentComplete
    (achievementUpdateResult) => {
        LOG("XblAchievementsUpdateAchievementAsync result", achievementUpdateResult);
        if (achievementUpdateResult == 0)
        {
        	//  Achievement updated.
       	}
        else if (achievementUpdateResult == HTTP_E_STATUS_NOT_MODIFIED) //  0x80190130
        {
       		//  Achievement isn't modified.
       	}
        else
        {
       		//  Achievement failed to update.
       	}
    }
);
```

### Inicialización de XBOX Services API (XSAPI) en código administrado

Como referencia, la siguiente es una inicialización de [XSAPI](/services/xbox-services/fundamentals/xbox-services-api/live-gs-xbl-apis) en código administrado. Esta es la firma de XSAPI en código administrado.

```csharp theme={null}
public static Int32 XGamingRuntime.SDK.XBL.XblInitialize(string scid)
```

El siguiente es un ejemplo del patrón de llamada de XSAPI en código administrado.

```csharp theme={null}
Int32 hresult = SDK.XBL.XblInitialize(SCID);
```

## Lista de API de Microsoft Game Development Kit (GDK) en contenedores administrados

Las siguientes API de Microsoft Game Development Kit (GDK) se incluyen en contenedores administrados dentro del paquete del GDK para Unity. Para obtener más información sobre las API de Microsoft Game Development Kit (GDK), consulte [Referencia de API del sistema](/reference/system/gc-reference-system-toc).

* [XAccessibility](/reference/system/xaccessibility/xaccessibility_members)
  * XClosedCaptionGetProperties
  * XClosedCaptionSetEnabled
  * XHighContrastGetMode
  * XSpeechToTextSendString
  * XSpeechToTextSetPositionHint
  * XSpeechToTextBeginHypothesisString
  * XSpeechToTextUpdateHypothesisString
  * XSpeechToTextFinalizeHypothesisString
  * XSpeechToTextCancelHypothesisString
* [XAppCapture](/reference/system/xappcapture/xappcapture_members)
  * XAppBroadcastGetStatus
  * XAppBroadcastIsAppBroadcasting
  * XAppBroadcastShowUI
  * XAppBroadcastRegisterIsAppBroadcastingChanged
  * XAppCaptureCloseLocalStream
  * XAppCaptureCloseScreenshotStream
  * XAppCaptureEnableRecord
  * XAppCaptureDisableRecord
  * XAppBroadcastUnregisterIsAppBroadcastingChanged
  * XAppCaptureMetadataAddStringEvent
  * XAppCaptureMetadataAddInt32Event
  * XAppCaptureMetadataAddDoubleEvent
  * XAppCaptureMetadataStartStringState
  * XAppCaptureMetadataStartInt32State
  * XAppCaptureMetadataStartDoubleState
  * XAppCaptureMetadataStopState
  * XAppCaptureMetadataStopAllStates
  * XAppCaptureMetadataRemainingStorageBytesAvailable
  * XAppCaptureOpenScreenshotStream
  * XAppCaptureReadScreenshotStream
  * XAppCaptureRecordDiagnosticClip
  * XAppCaptureTakeDiagnosticScreenshot
  * XAppCaptureTakeScreenshot
  * XAppCaptureRegisterMetadataPurged
  * XAppCaptureUnRegisterMetadataPurged
  * XAppCaptureReadLocalStream
  * XAppCaptureRecordTimespan
  * XAppCaptureGetVideoCaptureSettings
* [XAsync](/reference/system/xasync/xasync_members)
  * XAsyncGetStatus
  * XAsyncGetResultSize
  * XAsyncCancel
  * XAsyncRun
* [XDisplay](/reference/system/xdisplay/xdisplay_members)
  * XDisplayTryEnableHdrMode
  * XDisplayAcquireTimeoutDeferral
  * XDisplayCloseTimeoutDeferralHandle
* [XError](/reference/system/xerror/xerror_members)
  * XErrorSetCallback
  * XErrorSetOptions
* [XGameEvent](/reference/system/xgameevent/xgameevent_members)
  * XGameEventWrite
* [XGame](/reference/system/xgame/xgame_members)
  * XGameGetXboxTitleId
  * XLaunchNewGame
  * XLaunchRestartOnCrash
* [XGameInvite](/reference/system/xgameinvite/xgameinvite_members)
  * XGameInviteRegisterForEvent
  * XGameInviteUnregisterForEvent
* [XGameProtocol](/reference/system/xgameprotocol/xgameprotocol_members)
  * XGameProtocolRegisterForActivation
  * XGameProtocolUnregisterForActivation
* [XGameRuntimeFeature](/reference/system/xgameruntimefeature/xgameruntimefeature_members)
  * XGameRuntimeIsFeatureAvailable
* [XGameRuntimeInit](/reference/system/xgameruntimeinit/xgameruntimeinit_members)
  * XGameRuntimeInitialize
  * XGameRuntimeUninitialize
* [XGameSave](/reference/system/xgamesave/xgamesave_members)
  * XGameSaveInitializeProvider
  * XGameSaveInitializeProviderAsync
  * XGameSaveInitializeProviderResult
  * XGameSaveCloseProvider
  * XGameSaveGetRemainingQuota
  * XGameSaveGetRemainingQuotaAsync
  * XGameSaveGetRemainingQuotaResult
  * XGameSaveDeleteContainer
  * XGameSaveDeleteContainerAsync
  * XGameSaveDeleteContainerResult
  * XGameSaveCreateContainer
  * XGameSaveCloseContainer
  * XGameSaveGetContainerInfo
  * XGameSaveEnumerateContainerInfo
  * XGameSaveEnumerateContainerInfoByName
  * XGameSaveEnumerateBlobInfo
  * XGameSaveEnumerateBlobInfoByName
  * XGameSaveReadBlobData
  * XGameSaveReadBlobDataAsync
  * XGameSaveReadBlobDataResult
  * XGameSaveCreateUpdate
  * XGameSaveCloseUpdateHandle
  * XGameSaveSubmitBlobWrite
  * XGameSaveSubmitBlobDelete
  * XGameSaveSubmitUpdate
  * XGameSaveSubmitUpdateAsync
  * XGameSaveSubmitUpdateResult
* [XGameSaveFiles](/reference/system/xgamesavefiles/xgamesavefiles_members)
  * XGameSaveFilesGetFolderWithUiAsync
  * XGameSaveFilesGetFolderWithUiResult
  * XGameSaveFilesGetRemainingQuota
* [XGameStreaming](/reference/system/xgamestreaming/xgamestreaming_members)
  * XGameStreamingInitialize
  * XGameStreamingUninitialize
  * XGameStreamingIsStreaming
  * XGameStreamingGetClientCount
  * XGameStreamingGetClients
  * XGameStreamingGetConnectionState
  * XGameStreamingRegisterConnectionStateChanged
  * XGameStreamingUnregisterConnectionStateChanged
  * XGameStreamingHideTouchControls
  * XGameStreamingHideTouchControlsOnClient
  * XGameStreamingShowTouchControlLayout
  * XGameStreamingShowTouchControlLayoutOnClient
  * XGameStreamingRegisterClientPropertiesChanged
  * XGameStreamingUnregisterClientPropertiesChanged
  * XGameStreamingGetStreamPhysicalDimensions
  * XGameStreamingGetStreamAddedLatency
  * XGameStreamingGetServerLocationNameSize
  * XGameStreamingGetServerLocationName
  * XGameStreamingIsTouchInputEnabled
  * XGameStreamingGetLastFrameDisplayed
  * XGameStreamingUpdateTouchControlsState
  * XGameStreamingUpdateTouchControlsStateOnClient
  * XGameStreamingShowTouchControlsWithStateUpdate
  * XGameStreamingShowTouchControlsWithStateUpdateOnClient
  * XGameStreamingGetTouchBundleVersionNameSize
  * XGameStreamingGetTouchBundleVersion
  * XGameStreamingGetClientIPAddress
  * XGameStreamingGetSessionId
  * XGameStreamingGetDisplayDetails
  * XGameStreamingSetResolution
* [XGameUI](/reference/system/xgameui/xgameui_members)
  * XGameUIShowAchievementsAsync
  * XGameUIShowAchievementsResult
  * XGameUIShowMessageDialogAsync
  * XGameUIShowMessageDialogResult
  * XGameUIShowErrorDialogAsync
  * XGameUIShowErrorDialogResult
  * XGameUIShowTextEntryAsync
  * XGameUIShowTextEntryResultSize
  * XGameUIShowTextEntryResult
  * XGameUITextEntryClose
  * XGameUITextEntryGetExtents
  * XGameUITextEntryOpen
  * XGameUITextEntryGetState
  * XGameUITextEntryUpdatePositionHint
  * XGameUITextEntryUpdateVisibility
  * XGameUISetNotificationPositionHint
  * XGameUIShowSendGameInviteAsync
  * XGameUIShowSendGameInviteResult
  * XGameUIShowMultiplayerActivityGameInviteAsync
  * XGameUIShowMultiplayerActivityGameInviteResult
  * XGameUIShowWebAuthenticationAsync
  * XGameUIShowWebAuthenticationResult
  * XGameUIShowWebAuthenticationWithOptionsAsync
  * XGameUIShowWebAuthenticationResultSize
  * XGameUIShowPlayerProfileCardAsync
  * XGameUIShowPlayerProfileCardResult
  * XGameUIShowPlayerPickerAsync
  * XGameUIShowPlayerPickerResultCount
  * XGameUIShowPlayerPickerResult
* [XLauncher](/reference/system/xlauncher/xlauncher_members)
  * XLaunchUri
* [XNetworking](/reference/networking/xnetworking/xnetworking_members)
  * XNetworkingGetConnectivityHint
  * XNetworkingQueryConfigurationSetting
  * XNetworkingQueryPreferredLocalUdpMultiplayerPort
  * XNetworkingQueryPreferredLocalUdpMultiplayerPortAsync
  * XNetworkingQueryPreferredLocalUdpMultiplayerPortAsyncResult
  * XNetworkingQuerySecurityInformationForUrlAsync
  * XNetworkingQuerySecurityInformationForUrlAsyncResultSize
  * XNetworkingQuerySecurityInformationForUrlAsyncResult
  * XNetworkingQuerySecurityInformationForUrlUtf16Async
  * XNetworkingQuerySecurityInformationForUrlUtf16AsyncResultSize
  * XNetworkingQuerySecurityInformationForUrlUtf16AsyncResult
  * XNetworkingQueryStatistics
  * XNetworkingRegisterConnectivityHintChanged
  * XNetworkingUnregisterConnectivityHintChanged
  * XNetworkingRegisterPreferredLocalUdpMultiplayerPortChanged
  * XNetworkingUnregisterPreferredLocalUdpMultiplayerPortChanged
  * XNetworkingVerifyServerCertificate
* [XPackage](/reference/system/xpackage/xpackage_members)
  * XPackageGetCurrentProcessPackageIdentifier
  * XPackageIsPackagedProcess
  * XPackageGetUserLocale
  * XPackageEnumeratePackages
  * XPackageFindChunkAvailability
  * XPackageChangeChunkInstallOrder
  * XPackageInstallChunks
  * XPackageUninstallChunks
  * XPackageInstallChunksAsync
  * XPackageInstallChunksResult
  * XPackageRegisterPackageInstalled
  * XPackageUnregisterPackageInstalled
  * XPackageEnumerateFeatures
  * XPackageEnumerateChunkAvailability
  * XPackageMount
  * XPackageMountWithUiAsync
  * XPackageMountWithUiResult
  * XPackageGetMountPath
  * XPackageGetMountPathSize
  * XPackageCloseMountHandle
  * XPackageCreateInstallationMonitor
  * XPackageCloseInstallationMonitorHandle
  * XPackageGetInstallationProgress
  * XPackageUpdateInstallationMonitor
  * XPackageRegisterInstallationProgressChanged
  * XPackageUnregisterInstallationProgressChanged
  * XPackageEstimateDownloadSize
  * XPackageGetWriteStats
  * XPackageUninstallUWPInstance
  * XPackageUninstallPackage
* [XPersistentLocalStorage](/reference/system/xpersistentlocalstorage/xpersistentlocalstorage_members)
  * XPersistentLocalStorageGetPathSize
  * XPersistentLocalStorageGetPath
  * XPersistentLocalStorageGetSpaceInfo
  * XPersistentLocalStoragePromptUserForSpaceAsync
  * XPersistentLocalStoragePromptUserForSpaceResult
* [XSpeechSynthesizer](/reference/system/xspeechsynthesizer/xspeechsynthesizer_members)
  * XSpeechSynthesizerEnumerateInstalledVoices
  * XSpeechSynthesizerCreate
  * XSpeechSynthesizerCloseHandle
  * XSpeechSynthesizerSetDefaultVoice
  * XSpeechSynthesizerSetCustomVoice
  * XSpeechSynthesizerCreateStreamFromText
  * XSpeechSynthesizerCreateStreamFromSsml
  * XSpeechSynthesizerCloseStreamHandle
  * XSpeechSynthesizerGetStreamDataSize
  * XSpeechSynthesizerGetStreamData
* [XStore](/reference/system/xstore/xstore_members)
  * XStoreCreateContext
  * XStoreCloseContextHandle
  * XStoreIsAvailabilityPurchasable
  * XStoreAcquireLicenseForPackageAsync
  * XStoreAcquireLicenseForPackageResult
  * XStoreCanAcquireLicenseForPackageAsync
  * XStoreCanAcquireLicenseForPackageResult
  * XStoreCanAcquireLicenseForStoreIdAsync
  * XStoreCanAcquireLicenseForStoreIdResult
  * XStoreCloseLicenseHandle
  * XStoreIsLicenseValid
  * XStoreQueryAddOnLicensesAsync
  * XStoreQueryAddOnLicensesResultCount
  * XStoreQueryAddOnLicensesResult
  * XStoreQueryGameLicenseAsync
  * XStoreQueryGameLicenseResult
  * XStoreQueryLicenseTokenAsync
  * XStoreQueryLicenseTokenResultSize
  * XStoreQueryLicenseTokenResult
  * XStoreRegisterGameLicenseChanged
  * XStoreUnregisterGameLicenseChanged
  * XStoreRegisterPackageLicenseLost
  * XStoreUnregisterGameLicenseChanged
  * XStoreUnregisterPackageLicenseLost
  * XStoreAcquireLicenseForDurablesAsync
  * XStoreQueryGameAndDlcPackageUpdatesAsync
  * XStoreQueryGameAndDlcPackageUpdatesResultCount
  * XStoreQueryGameAndDlcPackageUpdatesResult
  * XStoreDownloadAndInstallPackagesAsync
  * XStoreDownloadAndInstallPackagesResultCount
  * XStoreDownloadAndInstallPackagesResult
  * XStoreDownloadAndInstallPackageUpdatesAsync
  * XStoreDownloadAndInstallPackageUpdatesResult
  * XStoreDownloadPackageUpdatesAsync
  * XStoreDownloadPackageUpdatesResult
  * XStoreQueryPackageIdentifier
  * XStoreShowRedeemTokenUIAsync
  * XStoreShowRedeemTokenUIResult
  * XStoreShowRateAndReviewUIAsync
  * XStoreShowRateAndReviewUIResult
  * XStoreShowPurchaseUIAsync
  * XStoreShowPurchaseUIResult
  * XStoreQueryConsumableBalanceRemainingAsync
  * XStoreQueryConsumableBalanceRemainingResult
  * XStoreReportConsumableFulfillmentAsync
  * XStoreReportConsumableFulfillmentResult
  * XStoreGetUserCollectionsIdAsync
  * XStoreGetUserCollectionsIdResultSize
  * XStoreGetUserCollectionsIdResult
  * XStoreGetUserPurchaseIdAsync
  * XStoreGetUserPurchaseIdResultSize
  * XStoreGetUserPurchaseIdResult
  * XStoreQueryAssociatedProductsAsync
  * XStoreQueryAssociatedProductsResult
  * XStoreQueryEntitledProductsAsync
  * XStoreQueryEntitledProductsResult
  * XStoreQueryProductForCurrentGameAsync
  * XStoreQueryProductForCurrentGameResult
  * XStoreQueryProductForPackageAsync
  * XStoreQueryProductForPackageResult
  * XStoreQueryProductsAsync
  * XStoreQueryProductsResult
  * XStoreProductsQueryNextPageAsync
  * XStoreCloseProductsQueryHandle
  * XStoreAcquireLicenseForDurablesResult
  * XStoreEnumerateProductsQuery
  * XStoreProductsQueryHasMorePages
  * XStoreProductsQueryNextPageResult
  * XStoreShowAssociatedProductsUIAsync
  * XStoreShowAssociatedProductsUIResult
  * XStoreShowProductPageUIAsync
  * XStoreShowProductPageUIResult
* [XSystem](/reference/system/xsystem/xsystem_members)
  * XSystemGetAnalyticsInfo
  * XSystemGetAppSpecificDeviceId
  * XSystemGetConsoleId
  * XSystemGetDeviceType
  * XSystemGetXboxLiveSandboxId
  * XSystemGetRuntimeInfo
  * XSystemIsHandleValid
  * XSystemHandleTrack
* [XTaskQueue](/reference/system/xtaskqueue/xtaskqueue_members)
  * XTaskQueueCloseHandle
  * XTaskQueueCreate
  * XTaskQueueCreateComposite
  * XTaskQueueDispatch
  * XTaskQueueDuplicateHandle
  * XTaskQueueGetCurrentProcessTaskQueue
  * XTaskQueueGetPort
  * XTaskQueueRegisterMonitor
  * XTaskQueueRegisterWaiter
  * XTaskQueueSetCurrentProcessTaskQueue
  * XTaskQueueSubmitCallback
  * XTaskQueueSubmitDelayedCallback
  * XTaskQueueTerminate
  * XTaskQueueUnregisterMonitor
  * XTaskQueueUnregisterWaiter
* [XThread](/reference/system/xthread/xthread_members)
  * XThreadIsTimeSensitive
  * XThreadSetTimeSensitive
  * XThreadAssertNotTimeSensitive
* [XUser](/reference/system/xuser/xuser_members)
  * XUserDuplicateHandle
  * XUserCloseHandle
  * XUserCompare
  * XUserGetMaxUsers
  * XUserAddAsync
  * XUserAddResult
  * XUserAddByIdWithUiAsync
  * XUserAddByIdWithUiResult
  * XUserGetId
  * XUserFindUserById
  * XUserGetLocalId
  * XUserFindUserByLocalId
  * XUserGetIsGuest
  * XUserGetState
  * XUserGetGamertag
  * XUserGetGamerPictureAsync
  * XUserGetAgeGroup
  * XUserCheckPrivilege
  * XUserResolvePrivilegeWithUiAsync
  * XUserResolvePrivilegeWithUiResult
  * XUserGetTokenAndSignatureUtf16Async
  * XUserResolveIssueWithUiUtf16Async
  * XUserResolveIssueWithUiUtf16Result
  * XUserRegisterForChangeEvent
  * XUserUnregisterForChangeEvent
  * XUserCloseSignOutDeferralHandle
  * XUserFindControllerForUserWithUiAsync
  * XUserFindControllerForUserWithUiResult
  * XUserFindForDevice
  * XUserGetDefaultAudioEndpointUtf16
  * XUserGetGamerPictureResultSize
  * XUserGetGamerPictureResult
  * XUserGetSignOutDeferral
  * XUserGetTokenAndSignatureAsync
  * XUserGetTokenAndSignatureResultSize
  * XUserGetTokenAndSignatureResult
  * XUserGetTokenAndSignatureUtf16ResultSize
  * XUserGetTokenAndSignatureUtf16Result
  * XUserIsStoreUser
  * XUserRegisterForDefaultAudioEndpointUtf16Changed
  * XUserRegisterForDeviceAssociationChanged
  * XUserResolveIssueWithUiAsync
  * XUserResolveIssueWithUiResult
  * XUserUnregisterForDefaultAudioEndpointUtf16Changed
  * XUserUnregisterForDeviceAssociationChanged

## Lista de API de los servicios de XBOX en contenedores administrados

Las siguientes API de los servicios de XBOX se incluyen en contenedores administrados dentro del paquete del GDK para Unity. Para obtener más información sobre las API de los servicios de XBOX, consulte [Referencia de API de XBOX Live](/reference/live/gc-reference-live-toc).

* [XblContext](/reference/live/xsapi-c/xbox_live_context_c/xbox_live_context_c_members)
* [XblAchievements](/reference/live/xsapi-c/achievements_c/achievements_c_members)
* [XblEvents](/reference/live/xsapi-c/events_c/events_c_members)
* [XblLeaderboard](/reference/live/xsapi-c/leaderboard_c/leaderboard_c_members)
* [XblPresence](/reference/live/xsapi-c/presence_c/presence_c_members)
* [XblPrivacy](/reference/live/xsapi-c/privacy_c/privacy_c_members)
* [XblSocialManager](/reference/live/xsapi-c/social_manager_c/social_manager_c_members)
* [XblUserStatistics](/reference/live/xsapi-c/user_statistics_c/user_statistics_c_members)
* [XblHttpCall](/reference/live/xsapi-c/http_call_c/http_call_c_members)
* [XblGetErrorCondition](/reference/live/xsapi-c/errors_c/errors_c_members)
* [XblMultiplayer](/reference/live/xsapi-c/multiplayer_c/multiplayer_c_members)
* [XblMultiplayerManager](/reference/live/xsapi-c/multiplayer_manager_c/multiplayer_manager_c_members)
* [XblMultiplayerActivity](/reference/live/xsapi-c/multiplayer_activity_c/multiplayer_activity_c_members)
* [XblMatchmaking](/reference/live/xsapi-c/matchmaking_c/matchmaking_c_members)
* [XblProfile](/reference/live/xsapi-c/profile_c/profile_c_members)
* [XblRealTimeActivity](/reference/live/xsapi-c/real_time_activity_c/real_time_activity_c_members)
* [XblTitleManagedStats](/reference/live/xsapi-c/title_managed_statistics_c/title_managed_statistics_c_members)
* [XblSocial](/reference/live/xsapi-c/social_c/social_c_members)
* [XblTitleStorage](/reference/live/xsapi-c/title_storage_c/title_storage_c_members)
* [XblUserStatics](/reference/live/xsapi-c/user_statistics_c/user_statistics_c_members)

## Documentación de referencia de las API

* [XStore (contenido de la API)](/reference/system/xstore/xstore_members)
* [XPackage (contenido de la API)](/reference/system/xpackage/xpackage_members)

## Consulte también

[Introducción a Unity para el desarrollo en PC](/build/gdk-and-engines/unity/unity)


## Related topics

- [Uso del GDK con Unity](/es/build/gdk-and-engines/unity/unity.md)
- [Contenedores con contenido fijo en Economy v2](/es/services/playfab/economy-monetization/economy-v2/tutorials/containers-with-fixed-contents.md)
- [Información general de Unity](/es/paths/unity/overview.md)
- [Diferencias conceptuales entre el GDK y Steamworks](/es/build/steam-porting-guide/conceptual-differences.md)
- [PlayFab para Unity (v2 unificado)](/es/services/playfab/sdks/unified-unity/overview.md)
