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

**XGameSaveProvider** 의 컨테이너에 대한 정보를 검색합니다.

## 구문

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

### 매개 변수

*provider*   \_In\_\
형식: XGameSaveProviderHandle

원하는 컨테이너를 가진 **XGameSaveProvider** 핸들입니다.

*containerName*   \_In\_z\_\
형식: char\*

정보를 검색할 컨테이너의 이름입니다. 발견될 경우 하나의 결과만 반환됩니다. 두 개 이상의 컨테이너를 원하는 경우 [XGameSaveEnumerateContainerInfo](/reference/system/xgamesave/functions/xgamesaveenumeratecontainerinfo) 또는 [XGameSaveEnumerateContainerInfoByName](/reference/system/xgamesave/functions/xgamesaveenumeratecontainerinfobyname)을 사용합니다.

*context*   \_In\_opt\_\
형식: void\*

컨텍스트를 위한 호출 개체에 대한 포인터입니다.

*callback*   \_In\_\
형식: XGameSaveContainerInfoCallback\*

[XGameSaveContainerInfo](/reference/system/xgamesave/structs/xgamesavecontainerinfo) 호출의 결과를 확인하고 데이터를 수집하는 콜백 함수입니다.

### 반환값

형식: HRESULT

함수 결과

#### 일반적인 오류

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

## 설명

<Note>이 함수는 시간에 민감한 스레드에서 호출해도 안전하지 않습니다. 자세한 내용은 [시간에 민감한 스레드](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)를 참조하세요.</Note>

컨테이너는 메타데이터의 컬렉션이며 그 안에 있는 Blob 집합에 대한 참조점입니다. 컨테이너 이름을 미리 알고 있는 경우, 이 API를 사용하여 해당 컨테이너에 대한 정보만 반환할 수 있습니다. 이는 정보가 필요할 때마다 모든 정보를 호출하는 대신 플레이어에 대한 특정 정보를 가져오는 데 유용합니다. **XGameSaveContainer** 의 구성은 [XGameSaveContainerInfo](/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); 
    } 
}
```

## 요구 사항

**헤더:** XGameSave.h

**라이브러리:** xgameruntime.lib

**지원되는 플랫폼:** Windows, XBOX One 계열 콘솔 및 XBOX Series 콘솔

## 개념 설명서

* [시간에 민감한 스레드](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)

## 함께 보기

[XGameSave](/reference/system/xgamesave/xgamesave_members)\
[XGameSaveCreateContainer](/reference/system/xgamesave/functions/xgamesavecreatecontainer)\
[XGameSaveContainerInfo](/reference/system/xgamesave/structs/xgamesavecontainerinfo)\
[게임 저장 디버깅](/build/core-features/common/game-save/game-saves-debugging)


## Related topics

- [XGameSaveContainerInfoCallback](/ko/reference/system/xgamesave/functions/xgamesavecontainerinfocallback.md)
- [XGameSave](/ko/reference/system/xgamesave/xgamesave_members.md)
- [GDK용 Unity C# API 래퍼](/ko/build/gdk-and-engines/unity/unity-api-wrappers.md)
- [XGameSaveContainerInfo](/ko/reference/system/xgamesave/structs/xgamesavecontainerinfo.md)
- [XGameSaveEnumerateContainerInfo](/ko/reference/system/xgamesave/functions/xgamesaveenumeratecontainerinfo.md)
