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