XGameSaveSubmitBlobWrite
Adds a write action to a XGameSaveUpdate.
Syntax
HRESULT XGameSaveSubmitBlobWrite(
XGameSaveUpdateHandle updateContext,
const char* blobName,
const uint8_t* data,
size_t byteCount
)
Parameters
updateContext _In_
Type: XGameSaveUpdateHandle
Handle to the XGameSaveUpdate the blob will be written to.
blobName _In_z_
Type: char*
Name of the blob to be written. The size of the blob name should not be greater than GS_MAX_BLOB_NAME_SIZE, in bytes.
data _In_reads_bytes_(byteCount)
Type: uint8_t*
Data to be written to the blob.
byteCount _In_
Type: size_t
Size of the data to be written to the blob. The size of the blob data should not be greater than GS_MAX_BLOB_SIZE, in bytes.
Note
While the size of the blob data is limited to GS_MAX_BLOB_SIZE, the entire update is also limited to GS_MAX_BLOB_SIZE. If an update contains a blob of GS_MAX_BLOB_SIZE, additional updates must be made in separate update requests.
Return value
Type: HRESULT
Function result.
Remarks
Note
This function isn't safe to call on a time-sensitive thread. For more information, see Time-sensitive threads.
You need to successfully call XGameSaveCreateUpdate before making this call.
The storage portion of this API is designed to easily transfer data from the game to persisted storage in a safe, reliable and transactional manner. We want to make sure the backing data for a container is always consistent and as such we want the whole operation to succeed or fail atomically. We don't want to have a partial update where some blob data is inconsistent with other data within the container. In order to do this we provide an update context that blob writes and deletes are submitted to and when that is ready the whole context is submitted. Note that you can only write one modification/deletion per blob in an update context. In practice this looks like the following:
An XGameSaveUpdate will be filled with Write and Delete actions to be carried out on blobs within the container by way of XGameSaveSubmitBlobWrite and XGameSaveSubmitBlobDelete. An update is completed by calling XGameSaveSubmitUpdate.
See the XGameSaveCreateUpdate examples for usage.
Requirements
Header: XGameSave.h
Library: xgameruntime.lib
Supported platforms: Windows, Xbox One family consoles and Xbox Series consoles
See also
XGameSave
XGameSaveCreateUpdate
XGameSaveSubmitUpdate
XGameSaveSubmitBlobDelete
Game save errors