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

# XPersistentLocalStorageGetPath

> XPersistentLocalStorageGetPath

# XPersistentLocalStorageGetPath

디바이스의 PLS(영구 로컬 스토리지)에 대한 게임별 경로를 반환합니다.

## 구문

```cpp theme={null}
HRESULT XPersistentLocalStorageGetPath(  
         size_t pathSize,  
         char* path,  
         size_t* pathUsed  
)  
```

### 매개 변수

*pathSize*   \_In\_\
형식: size\_t

PLS 경로에 대해 제공된 버퍼의 문자 수입니다. 이 값을 얻으려면 [XPersistentLocalStorageGetPathSize](/reference/system/xpersistentlocalstorage/functions/xpersistentlocalstoragegetpathsize)를 호출합니다.

*path*   \_Out\_writes\_to\_(pathSize,*pathUsed)\
형식: char*

게임이 데이터를 쓸 수 있는 PLS 경로입니다.

*pathUsed*   \_Out\_opt\_\
형식: size\_t\*

제공된 버퍼에 기록된 문자 수입니다.

### 반환 값

형식: [HRESULT](https://learn.microsoft.com/openspecs/windows_protocols/ms-erref/0642cb2f-2075-4469-918c-4441e69c548a)

성공하면 **S\_OK**를 반환하고, 그렇지 않으면 오류 코드를 반환합니다. 오류 코드 목록은 [오류 코드](/reference/errorcodes)를 참조하세요. *pathSize*가 PLS 경로 길이보다 작아서 함수가 실패하는 경우, 반환 값은 XBOX 디바이스의 경우 **E\_FAIL**로, PC 디바이스의 경우 \*\*HRESULT\_FROM\_WIN32(ERROR\_INSUFFICIENT\_BUFFER)\*\*로 설정됩니다.

## 설명

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

게임은 스테이징 공간, 게임 내 DLC, 콘텐츠의 온디맨드 생성과 같은 작업을 위해 PLS가 필요할 수 있습니다. 이 공간은 게임 활성화 간에 유지되지만 사용자가 삭제할 수도 있습니다. PLS에 대한 자세한 내용은 [로컬 스토리지](/build/console-features/storage/local-storage)를 참조하세요.

PLS는 디바이스의 제품군에 따라 액세스되고 관리됩니다. XBOX 디바이스의 경우 드라이브 루트에 탑재된 폴더에 대한 액세스를 제공합니다. 해당 폴더에 대해 프로비저닝된 저장 공간의 양은 게임의 MicrosoftGame.config 파일에 지정됩니다. 프로비저닝된 공간은 게임 실행 중에 사용할 수 있으며 항상 존재합니다. 공간을 확보하기 위해 게임이 실행되지 않을 때 사용자는 게임을 제거하지 않고도 프로비저닝된 공간을 삭제할 수 있습니다. 그러나 게임이 실행 중일 때는 스토리지의 가용성이 보장됩니다. XBOX 디바이스에 대해 이 공간을 프로비저닝하려면 MicrosoftGame.config 파일에 해당하는 항목이 있어야 합니다.

PC 디바이스의 경우 PC의 로컬 스토리지 폴더 위치에 대한 액세스를 제공하지만 게임을 위해 공간이 특별히 프로비저닝되지 않습니다. 사용자는 게임이 실행 중인 동안에도 해당 공간을 삭제할 수 있습니다. 스토리지 가용성은 보장되지 않으며, 스토리지 공간을 청구하려면 MicrosoftGame.config 파일에 항목이 필요하지 않습니다. 먼저 로컬 스토리지 폴더에서 사용 가능한 공간이 게임의 용도에 충분한지 확인해야 합니다.

PLS 경로를 검색하기 위해 이 함수를 호출하기 전에 [XPersistentLocalStorageGetPathSize](/reference/system/xpersistentlocalstorage/functions/xpersistentlocalstoragegetpathsize) 함수를 호출하여 PLS 경로의 문자 수를 가져온 다음 해당 값을 *pathSize* 매개 변수에 제공하고 *path* 매개 변수에 최소한 그만큼의 문자를 할당합니다. *pathSize*에 지정된 문자 수가 PLS 경로에 포함된 문자 수보다 적으면 오류가 발생합니다.

다음 예제에서는 **XPersistentLocalStorageGetPathSize** 및 **XPersistentLocalStorageGetPath** 함수를 사용하여 게임의 PLS 경로를 가져오는 방법을 보여줍니다.

```cpp theme={null}
// 작업 큐에서 비동기 작업을 실행하는 데 필요한 모든 기능을 사용할 수 있는지 확인합니다.
LPCSTR Game::CheckPLSPath()
{
    // 로컬 스토리지 폴더 경로의 길이를 확인합니다.
    LPCSTR returnPath = "";
    size_t pathSize;
    if (SUCCEEDED(XPersistentLocalStorageGetPathSize(&pathSize)))
    {
        char * path = new char[pathSize];
        size_t * pathUsed = new size_t;
        if (path != nullptr)
        {
            // 로컬 스토리지 폴더의 경로를 가져옵니다.
            if (SUCCEEDED(XPersistentLocalStorageGetPath(pathSize, path, pathUsed))) 
            {
                // 안전을 위해 버퍼에서 사용된 바이트를 별도의 문자열에 복사합니다.
                char * actualPath = new char[*pathUsed];
                strncpy(actualPath, path, *pathUsed);
                returnPath = actualPath;
            }
        }
    };

    return returnPath;
}
```

## 요구 사항

**헤더:** XPersistentLocalStorage.h

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

**지원 플랫폼:** Windows, XBOX One 제품군 콘솔 및 XBOX Series 콘솔

## 개념 문서

* [XBOX 콘솔의 로컬 스토리지](/build/console-features/storage/local-storage)
* [시간에 민감한 스레드](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)

## 함께 보기

[XPersistentLocalStorageGetPathSize](/reference/system/xpersistentlocalstorage/functions/xpersistentlocalstoragegetpathsize)\
[XPersistentLocalStorage](/reference/system/xpersistentlocalstorage/xpersistentlocalstorage_members)\
[새 MicrosoftGame.config 파일 사용 방법](/build/core-features/common/game-config/MicrosoftGameConfig-toc)


## Related topics

- [XPersistentLocalStorageGetPathSize](/ko/reference/system/xpersistentlocalstorage/functions/xpersistentlocalstoragegetpathsize.md)
- [XPersistentLocalStorage](/ko/reference/system/xpersistentlocalstorage/xpersistentlocalstorage_members.md)
- [GDK용 Unity C# API 래퍼](/ko/build/gdk-and-engines/unity/unity-api-wrappers.md)
- [XPersistentLocalStorageGetSpaceInfo](/ko/reference/system/xpersistentlocalstorage/functions/xpersistentlocalstoragegetspaceinfo.md)
- [XPersistentLocalStorageMountForPackage](/ko/reference/system/xpersistentlocalstorage/functions/xpersistentlocalstoragemountforpackage.md)
