다음을 통해 공유


XPersistentLocalStorageGetPath

장치의 영구 로컬 저장소(PLS)에 대한 게임별 경로를 반환합니다.

구문

HRESULT XPersistentLocalStorageGetPath(  
         size_t pathSize,  
         char* path,  
         size_t* pathUsed  
)  

매개 변수

pathSize _In_
형식: size_t

PLS 경로에 대해 제공된 버퍼의 문자 수입니다. 이 값을 가져오려면 XPersistentLocalStorageGetPathSize를 호출합니다.

path _Out_writes_to_(pathSize,pathUsed)
형식: char

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

pathUsed _Out_opt_
형식: size_t*

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

반환 값

형식: HRESULT

성공한 경우 S_OK를 반환하고, 그렇지 않으면 오류 코드를 반환합니다. 오류 코드 목록은 오류 코드를 참조하세요. pathSize가 PLS 경로의 길이보다 작기 때문에 함수가 실패하면 반환 값은 Xbox 장치의 경우 E_FAIL로 설정되고, PC 장치의 경우 HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER)로 설정됩니다.

비고

참고 항목

이 함수는 시간에 민감한 스레드에서 호출하는 것이 안전하지 않습니다. 자세한 내용은 시간에 민감한 스레드를 참조하세요.

준비 공간, 게임 내 DLC 및 주문형 콘텐츠 생성 등의 작업을 위해 게임에 PLS가 필요할 수 있습니다. 게임을 정품 인증하는 동안에도 공간이 유지되지만 사용자는 이 공간을 삭제할 수 있습니다. PLS에 대한 자세한 내용은, 로컬 저장소를 참조하세요.

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

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

PLS 경로를 검색하기 위해 이 함수를 호출하기 전에 XPersistentLocalStorageGetPathSize 함수를 호출하여 PLS 경로의 문자 수를 가져온 다음 pathSize 매개 변수에 해당 값을 제공하고 path 매개 변수에 대해 최소한 같은 수의 문자를 할당합니다. pathSize에 PLS 경로에 포함된 것보다 적은 문자가 지정되어 있으면 오류가 발생합니다.

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

// Confirm that all of the features needed to run asynchronous tasks on 
// task queues are available.
LPCSTR Game::CheckPLSPath()
{
    // Confirm the length of the path to the local storage folder.
    LPCSTR returnPath = "";
    size_t pathSize;
    if (SUCCEEDED(XPersistentLocalStorageGetPathSize(&pathSize)))
    {
        char * path = new char[pathSize];
        size_t * pathUsed = new size_t;
        if (path != nullptr)
        {
            // Get the path to the local storage folder.
            if (SUCCEEDED(XPersistentLocalStorageGetPath(pathSize, path, pathUsed))) 
            {
                // Just to be safe, copy the bytes used in the buffer 
                // to a separate string.
                char * actualPath = new char[*pathUsed];
                strncpy(actualPath, path, *pathUsed);
                returnPath = actualPath;
            }
        }
    };

    return returnPath;
}

요구 사항

헤더: XPersistentLocalStorage.h

라이브러리: xgameruntime.lib

지원되는 플랫폼: Windows, Xbox One 패밀리 콘솔 및 Xbox Series 콘솔

참고 항목

XPersistentLocalStorageGetPathSize
XPersistentLocalStorage
새로운 MicrosoftGame.config 파일을 사용하는 방법