> ## 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 sur lequel récupérer des informations; un seul résultat est retourné s'il est trouvé. Si vous souhaitez obtenir plus d'un conteneur, utilisez [XGameSaveEnumerateContainerInfo](/fr-CA/reference/system/xgamesave/functions/xgamesaveenumeratecontainerinfo) ou [XGameSaveEnumerateContainerInfoByName](/fr-CA/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-CA/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 danger sur un thread sensible au temps. Pour plus d'informations, consultez [Threads sensibles au temps](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 retourner les informations de ce conteneur uniquement. C'est utile pour récupérer des informations précises 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-CA/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 sensibles au temps](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)

## Voir aussi

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


## Related topics

- [XGameSaveContainerInfoCallback](/fr-CA/reference/system/xgamesave/functions/xgamesavecontainerinfocallback.md)
- [XGameSave](/fr-CA/reference/system/xgamesave/xgamesave_members.md)
- [Wrappers d'API C# Unity pour le GDK](/fr-CA/build/gdk-and-engines/unity/unity-api-wrappers.md)
- [XGameSaveContainerInfo](/fr-CA/reference/system/xgamesave/structs/xgamesavecontainerinfo.md)
- [XGameSaveEnumerateContainerInfo](/fr-CA/reference/system/xgamesave/functions/xgamesaveenumeratecontainerinfo.md)
