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

# XGameSaveReadBlobDataResult

> XGameSaveReadBlobDataResult

# XGameSaveReadBlobDataResult

Retrieves the results of a [XGameSaveReadBlobDataAsync](/reference/system/xgamesave/functions/xgamesavereadblobdataasync) call.

## Syntax

```cpp theme={null}
HRESULT XGameSaveReadBlobDataResult(  
         XAsyncBlock* async,  
         size_t blobsSize,  
         XGameSaveBlob* blobData,  
         uint32_t* countOfBlobs  
)  
```

### Parameters

*async*   \_In\_\
Type: [XAsyncBlock\*](/reference/system/xasync/structs/xasyncblock)

AsyncBlock passed from the [XGameSaveReadBlobDataAsync](/reference/system/xgamesave/functions/xgamesavereadblobdataasync) function.

*blobsSize*   \_In\_\
Type: size\_t

Required size of the allocated blob data. Retrieve via GetAsyncResultSize.

*blobData*   \_Out\_writes\_bytes\_(blobsSize)\
Type: [XGameSaveBlob\*](/reference/system/xgamesave/structs/xgamesaveblob)

[XGameSaveBlob](/reference/system/xgamesave/structs/xgamesaveblob) pointer to contain the blob data. Must have memory allocated to store all of the blobs in the container.

*countOfBlobs*   \_Out\_\
Type: uint32\_t\*

Number of blobs returned in the result.

### Return value

Type: HRESULT

Function result.

#### Common errors

* E\_GS\_INVALID\_CONTAINER\_NAME
* E\_GS\_PROVIDED\_BUFFER\_TOO\_SMALL
* E\_GS\_BLOB\_NOT\_FOUND
* E\_GS\_CONTAINER\_NOT\_IN\_SYNC
* E\_GS\_CONTAINER\_SYNC\_FAILED
* E\_GS\_HANDLE\_EXPIRED

## Remarks

Call this function after [XGameSaveReadBlobDataAsync](/reference/system/xgamesave/functions/xgamesavereadblobdataasync) is completed as a part of the callback function to verify success and retrieve the XGameSaveBlob data as well as the count of blobs. You can use these values in order to iterate over the blobs in a container to read the appropriate information. Result methods are commonly written in line with the asynchronous call which will call them later, but can also be written as separate functions.

See the [XGameSaveReadBlobDataSync example](/reference/system/xgamesave/functions/xgamesavereadblobdataasync#example) for usage.

## Requirements

**Header:** XGameSave.h

**Library:** xgameruntime.lib

**Supported platforms:** Windows, XBOX One family consoles and XBOX Series consoles

## See also

[XGameSave](/reference/system/xgamesave/xgamesave_members)\
[XGameSaveReadBlobDataAsync](/reference/system/xgamesave/functions/xgamesavereadblobdataasync)\
[XGameSaveBlobInfo](/reference/system/xgamesave/structs/xgamesaveblobinfo)\
[Debugging Game Saves](/build/core-features/common/game-save/game-saves-debugging)


## Related topics

- [XGameSaveReadBlobDataAsync](/reference/system/xgamesave/functions/xgamesavereadblobdataasync.md)
- [XGameSave](/reference/system/xgamesave/xgamesave_members.md)
- [Unity C# API wrappers for the GDK](/build/gdk-and-engines/unity/unity-api-wrappers.md)
- [XGameSaveReadBlobData](/reference/system/xgamesave/functions/xgamesavereadblobdata.md)
- [XGameSaveBlob](/reference/system/xgamesave/structs/xgamesaveblob.md)
