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

# XGameSaveGetContainerInfo

> XGameSaveGetContainerInfo

# XGameSaveGetContainerInfo

Récupère les informations des conteneurs d'un **XGameSaveProvider**.

## Syntaxe

```cpp theme={null}
HRESULT XGameSaveGetContainerInfo(  
         XGameSaveProviderHandle provider,  
         const char* containerName,  
         void* context,  
         XGameSaveContainerInfoCallback* callback  
)  
```

### Paramètres

*provider*   \_In\_\
Type : XGameSaveProviderHandle

Handle **XGameSaveProvider** contenant le conteneur souhaité.

*containerName*   \_In\_z\_\
Type : char\*

Nom du conteneur dont les informations doivent être récupérées ; un seul résultat est renvoyé s'il est trouvé. Si vous souhaitez obtenir plusieurs conteneurs, utilisez [XGameSaveEnumerateContainerInfo](/fr/reference/system/xgamesave/functions/xgamesaveenumeratecontainerinfo) ou [XGameSaveEnumerateContainerInfoByName](/fr/reference/system/xgamesave/functions/xgamesaveenumeratecontainerinfobyname).

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

Pointeur vers l'objet appelant, pour le contexte.

*callback*   \_In\_\
Type : XGameSaveContainerInfoCallback\*

Fonction de rappel permettant de déterminer les résultats de l'appel [XGameSaveContainerInfo](/fr/reference/system/xgamesave/structs/xgamesavecontainerinfo) et d'en collecter les données.

### Valeur de retour

Type : HRESULT

Résultat de la fonction

#### Erreurs courantes

* E\_GS\_INVALID\_CONTAINER\_NAME
* E\_GS\_USER\_CANCELED
* E\_GS\_CONTAINER\_NOT\_IN\_SYNC
* E\_GS\_CONTAINER\_SYNC\_FAILED
* E\_GS\_HANDLE\_EXPIRED

## Remarques

<Note>Cette fonction ne peut pas être appelée sans risque sur un thread à durée critique. Pour plus d'informations, consultez [Threads à durée critique](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads).</Note>

Un conteneur est une collection de métadonnées et un point de référence pour l'ensemble des blobs qu'il contient. Si le nom du conteneur est connu à l'avance, il est possible d'utiliser cette API pour renvoyer les informations de ce seul conteneur. Cela est utile pour récupérer des informations spécifiques sur un joueur au lieu de toutes les demander chaque fois que vous avez besoin d'informations. Vous trouverez la composition d'un **XGameSaveContainer** dans la structure [XGameSaveContainerInfo](/fr/reference/system/xgamesave/structs/xgamesavecontainerinfo).

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

## Configuration requise

**En-tête :** XGameSave.h

**Bibliothèque :** xgameruntime.lib

**Plateformes prises en charge :** Windows, consoles de la famille XBOX One et consoles XBOX Series

## Documentation conceptuelle

* [Threads à durée critique](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)

## Voir aussi

[XGameSave](/fr/reference/system/xgamesave/xgamesave_members)\
[XGameSaveCreateContainer](/fr/reference/system/xgamesave/functions/xgamesavecreatecontainer)\
[XGameSaveContainerInfo](/fr/reference/system/xgamesave/structs/xgamesavecontainerinfo)\
[Débogage des sauvegardes de jeu](/fr/build/core-features/common/game-save/game-saves-debugging)


## Related topics

- [XGameSaveGetContainerInfo](/reference/system/xgamesave/functions/xgamesavegetcontainerinfo.md)
- [XGameSaveContainerInfoCallback](/reference/system/xgamesave/functions/xgamesavecontainerinfocallback.md)
