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

# XGameSaveContainerInfoCallback

> XGameSaveContainerInfoCallback

# XGameSaveContainerInfoCallback

在向 XGameSave 要求資料之後用來完成工作的回呼函式。

## 語法

```cpp theme={null}
bool XGameSaveContainerInfoCallback(  
         const XGameSaveContainerInfo* info,  
         void* context  
)  
```

### 參數

*info*   \_In\_\
類型：[XGameSaveContainerInfo\*](/zh-TW/reference/system/xgamesave/structs/xgamesavecontainerinfo)

從對 [XGameSaveGetContainerInfo](/zh-TW/reference/system/xgamesave/functions/xgamesavegetcontainerinfo)、[XGameSaveEnumerateContainerInfo](/zh-TW/reference/system/xgamesave/functions/xgamesaveenumeratecontainerinfo) 或 [XGameSaveEnumerateContainerInfoByName](/zh-TW/reference/system/xgamesave/functions/xgamesaveenumeratecontainerinfobyname) 的呼叫所傳遞的 XGameSaveContainerInfo。

*context*   \_In\_opt\_\
類型：void\*

傳入 [XGameSaveGetContainerInfo](/zh-TW/reference/system/xgamesave/functions/xgamesavegetcontainerinfo)、[XGameSaveEnumerateContainerInfo](/zh-TW/reference/system/xgamesave/functions/xgamesaveenumeratecontainerinfo) 或 [XGameSaveEnumerateContainerInfoByName](/zh-TW/reference/system/xgamesave/functions/xgamesaveenumeratecontainerinfobyname) 的物件。內容指標會攜帶回呼函式中可能需要的該物件相關資訊。

```cpp theme={null}
void Sample::_GetContainerInfo(const char* name) 
{ 
    XGameSaveContainerInfoCallback* callback = [](_In_ const XGameSaveContainerInfo* info, _In_ void* ctx) -> bool 
    { 
        auto self = reinterpret_cast<Sample*>(ctx); 
        self->_UpdateContainerList(info); 
        return true; 
    }; 
  
    HRESULT hr = XGameSaveGetContainerInfo(_provider, name, this, callback); 
    if (FAILED(hr)) 
    { 
        _HandleContainerErrors(name, hr); 
    } 
} 
 
void Sample::_UpdateContainerList(const XGameSaveContainerInfo* container) 
{ 
    //update UX 
    printf("%s - %s: %I64dbytes %d blobs\n", container->name, container->displayName, container->totalSize, container->blobCount); 
    if (strcmp(container->name, "AutoSave") == 0) 
    { 
        _ReadContainerBlobsAsync(container); 
    } 
} 
 
void Sample::_HandleContainerErrors(const char* name, HRESULT hr) 
{ 
    switch (hr) 
    { 
    case E_GS_INVALID_CONTAINER_NAME: 
        printf("\'%s\' name is invalid for a container", name); 
        break; 
    case E_GS_USER_CANCELED: 
        printf("Container %s failed to sync user canceled hr=0x%08x\n", name, hr); 
        break; 
    case E_GS_CONTAINER_NOT_IN_SYNC: 
    case E_GS_CONTAINER_SYNC_FAILED: 
        printf("Container %s failed to sync hr=0x%08x\n", name, hr); 
        break; 
    case E_GS_HANDLE_EXPIRED: 
        printf("Container %s failed, re-initialize provider", name); 
        break; 
    case S_OK: 
        break; 
    default: 
        printf("Unknown Container error %s hr=0x%08X\n", name, hr); 
    } 
} 
```

### 傳回值

類型：bool

傳回 false 以停止列舉。

## 備註

作為參數傳遞給 [XGameSaveGetContainerInfo](/zh-TW/reference/system/xgamesave/functions/xgamesavegetcontainerinfo)、[XGameSaveEnumerateContainerInfo](/zh-TW/reference/system/xgamesave/functions/xgamesaveenumeratecontainerinfo) 或 [XGameSaveEnumerateContainerInfoByName](/zh-TW/reference/system/xgamesave/functions/xgamesaveenumeratecontainerinfobyname) 呼叫。此函式會作為回呼使用，以便在取得 XGameSave 資訊時，其他處理程序可以繼續執行。此回呼模式也允許分段傳回資料。無論您的回呼函式是另外宣告或以內嵌方式宣告，該函式都必須具有與 **XGameSaveContainerInfoCallback** 相同的參數和布林傳回值。

## 需求

**標頭：** XGameSave.h

**程式庫：** xgameruntime.lib

**支援的平台：** Windows、XBOX One 系列主機和 XBOX Series 主機

## 另請參閱

[XGameSave](/zh-TW/reference/system/xgamesave/xgamesave_members)\
[XGameSaveGetContainerInfo](/zh-TW/reference/system/xgamesave/functions/xgamesavegetcontainerinfo)\
[XGameSaveEnumerateContainerInfo](/zh-TW/reference/system/xgamesave/functions/xgamesaveenumeratecontainerinfo)\
[XGameSaveEnumerateContainerInfoByName](/zh-TW/reference/system/xgamesave/functions/xgamesaveenumeratecontainerinfobyname)
[遊戲存檔偵錯](/zh-TW/build/core-features/common/game-save/game-saves-debugging)


## Related topics

- [XGameSaveContainerInfoCallback](/reference/system/xgamesave/functions/xgamesavecontainerinfocallback.md)
- [XGameSaveContainerInfo](/reference/system/xgamesave/structs/xgamesavecontainerinfo.md)
