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

# GDK 向け Unity C# API ラッパー

> GDK for Unity パッケージの XGamingRuntime C# 名前空間のリファレンス: 命名規則、HRESULT 処理、非同期パターン、ネイティブとマネージドの例。

このトピックを使用して、マネージド コードから Microsoft Game Development Kit (GDK) および XBOX services API を適切に呼び出すために API ラッパーを使う方法を理解してください。

## Microsoft Game Development Kit (GDK) API へのアクセス

Unity から Microsoft GDK API パッケージをインポートした後、その機能は XGamingRuntime 名前空間の下で利用できます。すべての Gaming Runtime API は、SDK クラスの静的メソッドを通じて利用できます。すべての XBOX services API は、SDK.XBL クラスの静的メソッドを通じて利用できます。次の例はその可用性を示しています。

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

// "GDK" 機能が利用可能な名前空間。

using XGamingRuntime;

namespace TestGame
{
    static class Program
    {
        static void Main()
        {
            // すべての API は SDK クラスの静的メソッドを通じてアクセスされます。
            Int32 hr = SDK.XGameRuntimeInitialize();

            // すべての Xbox services API は SDK.XBL クラスの静的メソッドを通じてアクセスされます。
            Int32 hr = SDK.XBL.XblInitialize(SCID);
            ...
        }
    }
}
```

## API カバレッジと規約

<Note>
  すべての API がパッケージ経由で利用可能なわけではありません。これらの API の完全なリストについては、このトピックの後半にある Microsoft Game Development Kit (GDK) および XBOX services API リストを参照してください。
</Note>

規約：

* API 名は、可能な限り GDK の対応名と一致します。
* 例外はありません。エラーは HRESULT を通じて伝えられます。
* オブジェクト指向のカプセル化を持たないフラットな API サーフェス。
* パラメーターを設定する API では out パラメーターが使用されます。
* 非同期メソッドはコールバックを使用します。詳細については次のセクションを参照してください。

## 非同期プログラミング モデル

ほとんどの非同期 API は、最後のパラメーターとしてコールバックを受け取ります。以下は例です。

```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)
    {
        // 結果をチェックし、次にハンドルで何かを行う。
    }
}
```

スレッド モデルに関する情報は次のとおりです。

* 非同期メソッドは即座に実行され、作業はスレッド プール内の利用可能なスレッドで実行されます。
  * スレッド プールは、SDK.XGameRuntimeInitialize() への呼び出しが行われた後、内部的に初期化されます。
  * スレッド プールの構成オプションは公開されていません。
* 結果コールバックは、dispatch が呼び出された後（つまり SDK.XTaskQueueDispatch()）に呼び出されます。その結果、dispatch を *頻繁に呼び出す* ことが重要で、理想的にはゲームの更新ループ中に呼び出すべきです。
* 結果コールバックは、dispatch を呼び出したスレッドで実行されます。

## ネイティブ API とマネージド ラッパーの違いの例

ネイティブ API とマネージド ラッパーには最小限の違いしかありません。参考として、次の 2 つの例は、マネージド コードとネイティブ コードでの **XUserAddAsync** と **XblAchievementsUpdateAchievementAsync** のシグネチャと呼び出し関数を示しています。

### XUserAddAsync の例

XUserAddAsync のネイティブ シグネチャは次のとおりです。

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

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

XUserAddAsync のマネージド シグネチャは次のとおりです。

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

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

ネイティブ コードで XUserAddAsync の関数を呼び出す方法の例は次のとおりです。

```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())))
{
    // 呼び出しが成功したので、コールバックが所有権を引き継ぐため、XAsyncBlock* の std::unique_ptr の所有権を解放する。
    // 呼び出しが失敗した場合、std::unique_ptr は所有権を保持し、XAsyncBlock* を削除する。
    asyncBlock.release();
}
```

XUserAddAsync 関数を呼び出すマネージド例は次のとおりです。

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

SDK.XUserAddAsync(
    XUserAddOptions.AddDefaultUserAllowingUI,
    (hr, userHandle) =>
    {
        LOG("XUserAddAsync", hr);
        if (hr >= 0)
        {
            this.userHandle = userHandle;
            // サインイン成功。
        }
        else
        {
            // サインイン失敗。
        }
    }
);
```

ユーザーがカスタム キューを使用したい場合や、API にコールバック実装が含まれていない場合、次の例は XAsyncBlock を作成する方法を示しています。ユーザーは、キューが適切にディスパッチされ完了することも確認する必要があります。詳細については [XTaskQueue library overview](https://learn.microsoft.com/gaming/gdk/_content/gc/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;
        // サインイン成功。
    }
    else
    {
        // サインイン失敗。
    }
}, IntPtr.Zero);

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

### XblAchievementsUpdateAchievementAsync の例

XblAchievementsUpdateAchievementAsync のネイティブ シグネチャは次のとおりです。

```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;
```

XblAchievementsUpdateAchievementAsync のマネージド シグネチャは次のとおりです。

```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);
```

ネイティブ コードで XblAchievementsUpdateAchievementAsync の関数を呼び出す方法の例は次のとおりです。

```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 }; // XAsyncBlock* の所有権を引き継ぐ
    auto result = XAsyncGetStatus(asyncBlock, false);
    if (SUCCEEDED(result))
    {
        // 実績が更新された。
    }
    else if (result == HTTP_E_STATUS_NOT_MODIFIED)
    {
        // 実績は変更されていない。
    }
    else
    {
        // 実績の更新に失敗した。
    }
};

HRESULT hr = XblAchievementsUpdateAchievementAsync(
    Data()->xboxLiveContext,
    Data()->xboxUserId,
    achievementId.c_str(),
    percentComplete,
    asyncBlock.get()
);
if (SUCCEEDED(hr))
{
    // 呼び出しが成功したので、コールバックが所有権を引き継ぐため、XAsyncBlock* の std::unique_ptr の所有権を解放する。
    // 呼び出しが失敗した場合、std::unique_ptr は所有権を保持し、XAsyncBlock* を削除する。
    asyncBlock.release();
}
```

XblAchievementsUpdateAchievementAsync 関数を呼び出すマネージド例は次のとおりです。

```csharp theme={null}
SDK.XBL.XblAchievementsUpdateAchievementAsync(
    xblContextHandle,
    xboxUserId,
    achievementId,
    percentComplete
    (achievementUpdateResult) => {
        LOG("XblAchievementsUpdateAchievementAsync result", achievementUpdateResult);
        if (achievementUpdateResult == 0)
        {
        	//  実績が更新された。
       	}
        else if (achievementUpdateResult == HTTP_E_STATUS_NOT_MODIFIED) //  0x80190130
        {
       		//  実績は変更されていない。
       	}
        else
        {
       		//  実績の更新に失敗した。
       	}
    }
);
```

### マネージド コードでの XBOX Services API (XSAPI) の初期化

参考までに、以下はマネージド コードでの [XSAPI](https://learn.microsoft.com/gaming/gdk/_content/gc/services/fundamentals/xbox-services-api/live-gs-xbl-apis) の初期化です。これはマネージド コードでの XSAPI のシグネチャです。

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

マネージド コードでの XSAPI 呼び出しパターンの例は次のとおりです。

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

## マネージド ラッパーの Microsoft Game Development Kit (GDK) API のリスト

GDK Unity パッケージ内のマネージド ラッパーには、以下の Microsoft Game Development Kit (GDK) API が含まれます。Microsoft Game Development Kit (GDK) API の詳細については、[System API reference](https://learn.microsoft.com/gaming/gdk/_content/gc/reference/system/gc-reference-system-toc) を参照してください。

* [XAccessibility](https://learn.microsoft.com/gaming/gdk/_content/gc/reference/system/xaccessibility/xaccessibility_members)
  * XClosedCaptionGetProperties
  * XClosedCaptionSetEnabled
  * XHighContrastGetMode
  * XSpeechToTextSendString
  * XSpeechToTextSetPositionHint
  * XSpeechToTextBeginHypothesisString
  * XSpeechToTextUpdateHypothesisString
  * XSpeechToTextFinalizeHypothesisString
  * XSpeechToTextCancelHypothesisString
* [XAppCapture](https://learn.microsoft.com/gaming/gdk/_content/gc/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](https://learn.microsoft.com/gaming/gdk/_content/gc/reference/system/xasync/xasync_members)
  * XAsyncGetStatus
  * XAsyncGetResultSize
  * XAsyncCancel
  * XAsyncRun
* [XDisplay](https://learn.microsoft.com/gaming/gdk/_content/gc/reference/system/xdisplay/xdisplay_members)
  * XDisplayTryEnableHdrMode
  * XDisplayAcquireTimeoutDeferral
  * XDisplayCloseTimeoutDeferralHandle
* [XError](https://learn.microsoft.com/gaming/gdk/_content/gc/reference/system/xerror/xerror_members)
  * XErrorSetCallback
  * XErrorSetOptions
* [XGameEvent](https://learn.microsoft.com/gaming/gdk/_content/gc/reference/system/xgameevent/xgameevent_members)
  * XGameEventWrite
* [XGame](https://learn.microsoft.com/gaming/gdk/_content/gc/reference/system/xgame/xgame_members)
  * XGameGetXboxTitleId
  * XLaunchNewGame
  * XLaunchRestartOnCrash
* [XGameInvite](https://learn.microsoft.com/gaming/gdk/_content/gc/reference/system/xgameinvite/xgameinvite_members)
  * XGameInviteRegisterForEvent
  * XGameInviteUnregisterForEvent
* [XGameProtocol](https://learn.microsoft.com/gaming/gdk/_content/gc/reference/system/xgameprotocol/xgameprotocol_members)
  * XGameProtocolRegisterForActivation
  * XGameProtocolUnregisterForActivation
* [XGameRuntimeFeature](https://learn.microsoft.com/gaming/gdk/_content/gc/reference/system/xgameruntimefeature/xgameruntimefeature_members)
  * XGameRuntimeIsFeatureAvailable
* [XGameRuntimeInit](https://learn.microsoft.com/gaming/gdk/_content/gc/reference/system/xgameruntimeinit/xgameruntimeinit_members)
  * XGameRuntimeInitialize
  * XGameRuntimeUninitialize
* [XGameSave](https://learn.microsoft.com/gaming/gdk/_content/gc/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](https://learn.microsoft.com/gaming/gdk/_content/gc/reference/system/xgamesavefiles/xgamesavefiles_members)
  * XGameSaveFilesGetFolderWithUiAsync
  * XGameSaveFilesGetFolderWithUiResult
  * XGameSaveFilesGetRemainingQuota
* [XGameStreaming](https://learn.microsoft.com/gaming/gdk/_content/gc/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](https://learn.microsoft.com/gaming/gdk/_content/gc/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](https://learn.microsoft.com/gaming/gdk/_content/gc/reference/system/xlauncher/xlauncher_members)
  * XLaunchUri
* [XNetworking](https://learn.microsoft.com/gaming/gdk/_content/gc/reference/networking/xnetworking/xnetworking_members)
  * XNetworkingGetConnectivityHint
  * XNetworkingQueryConfigurationSetting
  * XNetworkingQueryPreferredLocalUdpMultiplayerPort
  * XNetworkingQueryPreferredLocalUdpMultiplayerPortAsync
  * XNetworkingQueryPreferredLocalUdpMultiplayerPortAsyncResult
  * XNetworkingQuerySecurityInformationForUrlAsync
  * XNetworkingQuerySecurityInformationForUrlAsyncResultSize
  * XNetworkingQuerySecurityInformationForUrlAsyncResult
  * XNetworkingQuerySecurityInformationForUrlUtf16Async
  * XNetworkingQuerySecurityInformationForUrlUtf16AsyncResultSize
  * XNetworkingQuerySecurityInformationForUrlUtf16AsyncResult
  * XNetworkingQueryStatistics
  * XNetworkingRegisterConnectivityHintChanged
  * XNetworkingUnregisterConnectivityHintChanged
  * XNetworkingRegisterPreferredLocalUdpMultiplayerPortChanged
  * XNetworkingUnregisterPreferredLocalUdpMultiplayerPortChanged
  * XNetworkingVerifyServerCertificate
* [XPackage](https://learn.microsoft.com/gaming/gdk/_content/gc/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](https://learn.microsoft.com/gaming/gdk/_content/gc/reference/system/xpersistentlocalstorage/xpersistentlocalstorage_members)
  * XPersistentLocalStorageGetPathSize
  * XPersistentLocalStorageGetPath
  * XPersistentLocalStorageGetSpaceInfo
  * XPersistentLocalStoragePromptUserForSpaceAsync
  * XPersistentLocalStoragePromptUserForSpaceResult
* [XSpeechSynthesizer](https://learn.microsoft.com/gaming/gdk/_content/gc/reference/system/xspeechsynthesizer/xspeechsynthesizer_members)
  * XSpeechSynthesizerEnumerateInstalledVoices
  * XSpeechSynthesizerCreate
  * XSpeechSynthesizerCloseHandle
  * XSpeechSynthesizerSetDefaultVoice
  * XSpeechSynthesizerSetCustomVoice
  * XSpeechSynthesizerCreateStreamFromText
  * XSpeechSynthesizerCreateStreamFromSsml
  * XSpeechSynthesizerCloseStreamHandle
  * XSpeechSynthesizerGetStreamDataSize
  * XSpeechSynthesizerGetStreamData
* [XStore](https://learn.microsoft.com/gaming/gdk/_content/gc/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](https://learn.microsoft.com/gaming/gdk/_content/gc/reference/system/xsystem/xsystem_members)
  * XSystemGetAnalyticsInfo
  * XSystemGetAppSpecificDeviceId
  * XSystemGetConsoleId
  * XSystemGetDeviceType
  * XSystemGetXboxLiveSandboxId
  * XSystemGetRuntimeInfo
  * XSystemIsHandleValid
  * XSystemHandleTrack
* [XTaskQueue](https://learn.microsoft.com/gaming/gdk/_content/gc/reference/system/xtaskqueue/xtaskqueue_members)
  * XTaskQueueCloseHandle
  * XTaskQueueCreate
  * XTaskQueueCreateComposite
  * XTaskQueueDispatch
  * XTaskQueueDuplicateHandle
  * XTaskQueueGetCurrentProcessTaskQueue
  * XTaskQueueGetPort
  * XTaskQueueRegisterMonitor
  * XTaskQueueRegisterWaiter
  * XTaskQueueSetCurrentProcessTaskQueue
  * XTaskQueueSubmitCallback
  * XTaskQueueSubmitDelayedCallback
  * XTaskQueueTerminate
  * XTaskQueueUnregisterMonitor
  * XTaskQueueUnregisterWaiter
* [XThread](https://learn.microsoft.com/gaming/gdk/_content/gc/reference/system/xthread/xthread_members)
  * XThreadIsTimeSensitive
  * XThreadSetTimeSensitive
  * XThreadAssertNotTimeSensitive
* [XUser](https://learn.microsoft.com/gaming/gdk/_content/gc/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

## マネージド ラッパーの XBOX services API のリスト

GDK Unity パッケージ内のマネージド ラッパーには、以下の XBOX services API が含まれます。XBOX services API の詳細については、[XBOX Live API reference](https://learn.microsoft.com/gaming/gdk/_content/gc/reference/live/gc-reference-live-toc) を参照してください。

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

## リファレンス API ドキュメント

* [XStore (API contents)](https://learn.microsoft.com/gaming/gdk/_content/gc/reference/system/xstore/xstore_members)
* [XPackage (API contents)](https://learn.microsoft.com/gaming/gdk/_content/gc/reference/system/xpackage/xpackage_members)

## 関連情報

[PC 開発のための Unity を始める](/build/gdk-and-engines/unity/unity)


## Related topics

- [Unity で GDK を使用する](/ja-jp/build/gdk-and-engines/unity/unity.md)
- [Unity 概要](/ja-jp/paths/unity/overview.md)
- [汎用非同期タスク ラッパー](/ja-jp/build/core-features/common/async/async-task-function-example.md)
- [Unity、Unreal、その他のエンジンで GDK を使用する](/ja-jp/build/gdk-and-engines/gdk-and-engines.md)
- [XSystem](/ja-jp/reference/system/xsystem/xsystem_members.md)
