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.

Conceptual documentation

See also

System API reference