Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The XGameSave API is designed to enable creating, loading, saving and managing game related states. The primary difference between this and previous implementations is that this will provide a flat API with access to an Asynchronous Programming Model that allows the caller to control the threading and memory management of how the API behaves.
Functions
| Function | Description |
|---|---|
| XGameSaveBlobInfoCallback | Callback function to retrieve the results of XGameSaveEnumerateBlobInfo. |
| XGameSaveCloseContainer | Closes the XGameSaveContainer. |
| XGameSaveCloseProvider | Releases resources held by the XGameSaveProvider. |
| XGameSaveCloseUpdate | Closes a XGameSaveUpdate. |
| XGameSaveContainerInfoCallback | The callback function for a call made to XGameSaveGetContainerInfo. |
| XGameSaveCreateContainer | Creates a XGameSaveContainer handle. |
| XGameSaveCreateUpdate | Creates an update which will later be submitted by calling XGameSaveSubmitUpdate. |
| XGameSaveDeleteContainer | Deletes a XGameSaveContainer from cloud storage. |
| XGameSaveDeleteContainerAsync | Deletes a XGameSaveContainer asynchronously. |
| XGameSaveDeleteContainerResult | Retrieves the result of a XGameSaveDeleteContainerAsync call, use this function to check the success of the call. |
| XGameSaveEnumerateBlobInfo | Retrieves the blob info for the contents of a XGameSaveContainer. |
| XGameSaveEnumerateBlobInfoByName | Retrieves the blob info for the contents of a XGameSaveContainer limited to the blobs which share a prefix with the blobNamePrefix parameter. |
| XGameSaveEnumerateContainerInfo | Retrieves the container info for a XGameSaveProvider. |
| XGameSaveEnumerateContainerInfoByName | Retrieves the container info for a XGameSaveProvider. |
| XGameSaveGetContainerInfo | Retrieves info for the containers in a XGameSaveProvider. |
| XGameSaveGetRemainingQuota | Returns the amount of data available to store using the XGameSave api. |
| XGameSaveGetRemainingQuotaAsync | Returns the amount of data available to store using the XGameSave api asynchronously. |
| XGameSaveGetRemainingQuotaResult | Retrieves the results of the XGameSaveGetRemainingQuotaAsync function. |
| XGameSaveInitializeProvider | Provides and initializes a XGameSave Provider handle. |
| XGameSaveInitializeProviderAsync | Provides and initializes an XGameSave Provider handle asynchronously. |
| XGameSaveInitializeProviderResult | Contains the results of a XGameSaveInitializeProviderAsync call. |
| XGameSaveReadBlobData | Reads the blob data for a container. |
| XGameSaveReadBlobDataAsync | Read XGameSaveBlob data from a XGameSaveContainer asynchronously. |
| XGameSaveReadBlobDataResult | Retrieves the results of a XGameSaveReadBlobDataAsync call. |
| XGameSaveSubmitBlobDelete | Adds a delete action to a game save XGameSaveUpdate. |
| XGameSaveSubmitBlobWrite | Adds a write action to a XGameSaveUpdate. |
| XGameSaveSubmitUpdate | Submit an update to the XGameSave service. Updates blobs within a container. |
| XGameSaveSubmitUpdateAsync | Submit an update to the XGameSave service asynchronously. Updates blobs within a container. |
| XGameSaveSubmitUpdateResult | Retrieves the result of the XGameSaveSubmitUpdateAsync call. |
Structures
| Structure | Description |
|---|---|
| XGameSaveBlob | Unit of information for XGameSave storage. Resides within a XGameSaveContainer. |
| XGameSaveBlobInfo | Information about the XGameSaveBlob. |
| XGameSaveContainerInfo | Information about a XGameSaveContainer. |
Error Codes
The following error codes may be returned by XGameSave APIs. For a complete list, see Error codes. For detailed troubleshooting guidance, see Game Saves Debugging.
| Code | Value | Description |
|---|---|---|
| E_GS_INVALID_CONTAINER_NAME | 0x80830001 | The name of the container is invalid. Valid container name characters include uppercase/lowercase letters, digits, underscores, and forward slashes. |
| E_GS_NO_ACCESS | 0x80830002 | The operation failed because the title does not have access to the container storage spaces. Check that the SCID and TitleId are configured correctly. |
| E_GS_OUT_OF_LOCAL_STORAGE | 0x80830003 | The device does not have enough storage capacity to save the game. |
| E_GS_USER_CANCELED | 0x80830004 | The user canceled the download of their save games. |
| E_GS_UPDATE_TOO_BIG | 0x80830005 | The size of the save update is too large. The total size of an XGameSave update must be smaller than GS_MAX_BLOB_SIZE (16 MB). |
| E_GS_QUOTA_EXCEEDED | 0x80830006 | The title's storage quota for this user has been exceeded. |
| E_GS_PROVIDED_BUFFER_TOO_SMALL | 0x80830007 | The buffer provided to the API was too small. |
| E_GS_BLOB_NOT_FOUND | 0x80830008 | The specified blob cannot be found. |
| E_GS_NO_SERVICE_CONFIGURATION | 0x80830009 | The title is not properly configured for connected storage. Check that the SCID is correct and the title is configured in Partner Center. |
| E_GS_CONTAINER_NOT_IN_SYNC | 0x8083000A | The container is not synchronized yet. Ensure the XGameSave container is synchronized before submitting updates. |
| E_GS_CONTAINER_SYNC_FAILED | 0x8083000B | The synchronization of the container failed. |
| E_GS_USER_NOT_REGISTERED_IN_SERVICE | 0x8083000C | The user's MSA is not yet an Xbox services account. |
| E_GS_HANDLE_EXPIRED | 0x8083000D | The handle used by the function expired and must be reacquired. |
| E_GS_ASYNC_FUNCTION_REQUIRED | 0x8083000E | This synchronous function is being called on a time-sensitive thread and risks deadlocks. Use the async implementation instead. |
| E_GS_PROVIDER_MISMATCH | 0x8083000F | The game is mixing XGameSave and XGameSaveFiles calls, which is not supported. |