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

Función de devolución de llamada para completar el trabajo después de solicitar datos a XGameSave.

## Sintaxis

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

### Parámetros

*info*   \_In\_\
Tipo: [XGameSaveContainerInfo\*](/reference/system/xgamesave/structs/xgamesavecontainerinfo)

XGameSaveContainerInfo pasado desde la llamada realizada a [XGameSaveGetContainerInfo](/reference/system/xgamesave/functions/xgamesavegetcontainerinfo), [XGameSaveEnumerateContainerInfo](/reference/system/xgamesave/functions/xgamesaveenumeratecontainerinfo) o [XGameSaveEnumerateContainerInfoByName](/reference/system/xgamesave/functions/xgamesaveenumeratecontainerinfobyname).

*context*   \_In\_opt\_\
Tipo: void\*

El objeto pasado a [XGameSaveGetContainerInfo](/reference/system/xgamesave/functions/xgamesavegetcontainerinfo), [XGameSaveEnumerateContainerInfo](/reference/system/xgamesave/functions/xgamesaveenumeratecontainerinfo) o [XGameSaveEnumerateContainerInfoByName](/reference/system/xgamesave/functions/xgamesaveenumeratecontainerinfobyname). El puntero de contexto transporta información sobre ese objeto que puede ser necesaria en la función de devolución de llamada.

```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); 
    } 
} 
```

### Valor devuelto

Tipo: bool

Devuelva false para detener la enumeración.

## Comentarios

Se pasa como parámetro a la llamada [XGameSaveGetContainerInfo](/reference/system/xgamesave/functions/xgamesavegetcontainerinfo), [XGameSaveEnumerateContainerInfo](/reference/system/xgamesave/functions/xgamesaveenumeratecontainerinfo) o [XGameSaveEnumerateContainerInfoByName](/reference/system/xgamesave/functions/xgamesaveenumeratecontainerinfobyname). Esta función se usa como devolución de llamada para que otros procesos puedan continuar mientras se obtiene la información de XGameSave. Este patrón de devolución de llamada también permite que los datos se devuelvan por secciones. Tanto si la función de devolución de llamada se declara por separado como si es inline, la función debe tener los mismos parámetros y el mismo valor devuelto booleano que **XGameSaveContainerInfoCallback**.

## Requisitos

**Encabezado:** XGameSave.h

**Biblioteca:** xgameruntime.lib

**Plataformas compatibles:** Windows, consolas de la familia XBOX One y consolas XBOX Series

## Consulte también

[XGameSave](/reference/system/xgamesave/xgamesave_members)\
[XGameSaveGetContainerInfo](/reference/system/xgamesave/functions/xgamesavegetcontainerinfo)\
[XGameSaveEnumerateContainerInfo](/reference/system/xgamesave/functions/xgamesaveenumeratecontainerinfo)\
[XGameSaveEnumerateContainerInfoByName](/reference/system/xgamesave/functions/xgamesaveenumeratecontainerinfobyname)
[Depuración de partidas guardadas](/build/core-features/common/game-save/game-saves-debugging)


## Related topics

- [XGameSaveContainerInfo](/es/reference/system/xgamesave/structs/xgamesavecontainerinfo.md)
- [XGameSaveEnumerateContainerInfo](/es/reference/system/xgamesave/functions/xgamesaveenumeratecontainerinfo.md)
- [XGameSaveGetContainerInfo](/es/reference/system/xgamesave/functions/xgamesavegetcontainerinfo.md)
- [XGameSaveEnumerateContainerInfoByName](/es/reference/system/xgamesave/functions/xgamesaveenumeratecontainerinfobyname.md)
- [XGameSave](/es/reference/system/xgamesave/xgamesave_members.md)
