다음을 통해 공유


로컬 저장소

Xbox One 본체에서 다음 네 가지 유형의 로컬 저장소에 액세스할 수 있습니다.

  • 임시 로컬 저장소
  • 설치된 게임 데이터
  • 개발자 스크래치 파티션
  • 영구 로컬 저장소
저장소 유형 위치
설치된 게임 데이터 G:\
임시 로컬 저장소 T:\
개발자 스크래치 파티션 D:\
영구 로컬 저장소 XPersistentLocalStorageGetPathSizeXPersistentLocalStorageGetPath를 호출하여 경로 크기와 데이터를 가져올 수 있습니다.
다운로드 가능한 콘텐츠 XPackageMount를 호출하여 DLC을 마운트하고 XPackageGetMountPath를 호출하여 경로를 얻을 수 있습니다.

XR-133: 로컬 저장소 쓰기 제한 사항

참고 항목

Xbox Series S, Xbox Series X 또는 동일한 콘솔군 내 다른 콘솔에서 작동하는 타이틀은 영구 로컬 저장소(PLS) 또는 임시 로컬 저장소에 5분 기간 동안 1 GiB 이상의 데이터를 쓸 수 없습니다. 1GiB 이상을 쓰는 타이틀은 인증 테스트를 통과하지 못합니다. 개발자는 쓰기 제한이 초과되는 경우 경고에 관한 PIX 타이밍 캡처를 볼 수 있습니다. 또한 타이틀은 XPackageGetWriteStats를 호출하여 런타임 시 쓰기 통계를 모니터링할 수 있습니다.

임시 로컬 저장소
임시 로컬 저장소는 타이틀에 T 드라이브로 표시됩니다. 타이틀이 실행 중일 때 임의의 XtfFileIO 명령에 /x:/title을 사용하면 임시 저장소에 액세스할 수 있습니다. 임시 로컬 저장소를 사용하여 로그 파일과 같은 임시 파일을 저장하고 원격 검색할 수 있습니다. 임시 로컬 저장소에 기록된 파일은 타이틀이 실행되는 동안에만 사용할 수 있습니다. T: 드라이브에 기록된 데이터가 게임 시작부터 게임 출시까지 유지된다는 보장은 없습니다. 타이틀이 종료된 후 특정 시점에 임시 저장소가 삭제될 수 있습니다.

임시 로컬 저장소에는 다음과 같은 기능도 있습니다.

  • 2GB의 전용 저장소
  • 타이틀이 종료된 후 콘텐츠가 삭제됩니다.
  • 빠른 재개를 포함하여 일시 중단 및 재개 시 콘텐츠가 지속됩니다.

설치된 게임 데이터
현재 실행 중인 타이틀이 설치된 게임 데이터의 위치는 G 드라이브에 매핑됩니다. 패키지 빌드를 사용할 때 실행 중인 게임 보기에만 이 볼륨을 읽을 수 있습니다.

개발자 스크래치 파티션
개발자 스크래치 파티션은 D 드라이브로 표시됩니다. 개발자 스크래치 파티션은 개발 중에 사용하기 위한 로컬 저장소입니다. 잠재적인 문제를 피하려면 정품 모드에서 모든 참조를 컴파일해야 합니다.

영구 로컬 저장소
타이틀은 매니페스트의 일부로 영구 로컬 저장소(PLS)에 대한 액세스를 요청할 수 있습니다.

이 저장소 공간은 게임 플레이의 재생 및 사용자 지정 렌더링 녹화와 같이 비 게임 저장 데이터를 저장하기 위한 장기 캐시로 사용하기 위한 것입니다. PLS는 주 데이터 저장소 공간이 되도록 설계되지 않았습니다. 게임 저장, 콘텐츠 업데이트 또는 타이틀 실행을 위해 존재해야 하는 기타 데이터에 사용해서는 안 됩니다. 대신 Connected Storage API를 사용하거나 선택적으로 온라인 전용 타이틀의 경우 Xbox 서비스 Title Storage 또는 게시자가 호스팅하는 클라우드 스토리지 서비스를 사용하여 게임 저장을 저장합니다.

PLS에는 다음과 같은 특성이 있습니다.

  • 타이틀별: 이 저장소 공간은 요청한 타이틀로만 액세스할 수 있습니다.
  • 본체 관련: 이 저장소 공간은 항상 본체에 고유한 XVD에서 만들어지며(타이틀이 외장형 드라이브에 설치된 경우에도) 다른 본체에서 사용할 수 없습니다.
  • 보장된 할당: 타이틀 시작이 허용되기 전에 시스템에서 공간 할당을 보장합니다. 하드 드라이브 공간이 부족한 경우 사용자에게 타이틀이 실행될 수 있도록 공간을 확보하라는 메시지가 표시됩니다.
  • 사용자 제어: 저장소 공간은 시스템 셸에서 사용자가 삭제할 수 있습니다. 시스템은 공간에서 어떤 항목도 자동으로 삭제할 수 없습니다.
  • 타이틀 설치 수명 관련: 타이틀이 제거되면 관련된 로컬 저장 공간도 제거됩니다. 타이틀을 다시 설치하는 경우 이전의 기존 데이터는 전혀 복구되지 않습니다.
  • 복원력 및 변조 방지: 저장소 공간은 타이틀이 저장한 데이터가 변조될 수 없도록 암호화되어 있고 무결성 검사를 받습니다.

PLS를 요청하려면 다음 변경 내용을 <게임>의 자식으로 MicrosoftGame.config에 추가합니다.

<?xml version="1.0" encoding="utf-8"?>
<Game configVersion="1">
    <!-- snip -->
    <PersistentLocalStorage><SizeMB>1024</SizeMB></PersistentLocalStorage>
</Game>

로컬 영구 저장소 공간을 획득하려면 XPersistentLocalStorageGetPathSizeXPersistentLocalStorageGetPath를 호출하여 경로 크기와 데이터를 얻습니다. 그러면 타이틀에 대한 영구 저장소 경로가 반환됩니다. 사용 가능한 공간을 총 양은 로컬 저장소에 대한 MicrosoftGame.config 선언에서 타이틀이 한 요청에 의해 결정됩니다.

제목이 콘텐츠 업데이트를 사용하여 요청된 영구 로컬 저장소 공간의 크기를 늘릴 경우 이전 저장소 공간은 삭제되고 업그레이드 중에 해당 콘텐츠가 손실됩니다.

공유 가능한 영구 로컬 스토리지

타이틀은 영구 로컬 스토리지를 다른 타이틀과 읽기 전용으로 공유하도록 선택할 수 있습니다. 타이틀이 다른 타이틀의 PLS를 읽을 수 있도록 허용하는 관계는 아래에 설명되어 있습니다.

PLS를 공유하는 제품 공유 가능한 PLS를 읽는 제품
프랜차이즈 게임 허브 이 프랜차이즈 게임 허브에 종속된 모든 허브 인식 게임과 이 프랜차이즈 게임 허브와 RelatedProduct 관계가 있는 모든 게임.
허브 인식 게임 관련 프랜차이즈 게임 허브와 이 게임과 RelatedProduct 관계가 있는 모든 게임.
허브를 인식하지 못하는 게임 이 게임과 RelatedProduct 관계가 있는 모든 게임.

PLS를 공유할 수 있도록 하려면 <PersistentLocalStorage> 자식으로 MicrosoftGame.config에 <Shareable> 변경 내용을 추가합니다.

<?xml version="1.0" encoding="utf-8"?>
<Game configVersion="1">
    <!-- snip -->
    <PersistentLocalStorage>
        <Shareable>true</Shareable> <!--This is optional, and the default value is false -->
    </PersistentLocalStorage>
</Game>

참고 항목

타이틀이 PLS를 공유 가능한 것으로 표시하는 경우 게임을 일시 중단하기 전에 PLS에 대한 모든 핸들을 닫는지 확인해야 합니다. 그러지 않으면 게임 일시 중단이 실패하고 게임이 종료됩니다.

Growable 영구 로컬 저장소
Growable 영구 로컬 저장소는 PLS의 확장이며, 이를 통해 타이틀은 훨씬 더 많은 양의 로컬 저장 공간에 대한 액세스를 그 공간에 대한 선두적 영구 예약 없이 요청할 수 있습니다. 이 기능은 모든 사용자가 활용할 수 없는 사용자 생성 콘텐츠(UGC) 다운로드 또는 대형 로컬 리플레이 파일 같은 추가 공간이 필요한 일부 시나리오가 있는 타이틀에서 사용하기에 적합합니다.

Growable PLS를 요청하려면 다음 변경 내용을 <게임>의 자식으로 MicrosoftGame.config에 추가합니다.

<?xml version="1.0" encoding="utf-8"?>
<Game configVersion="1">
    <!-- snip -->
    <PersistentLocalStorage>
        <!-- <SizeMB>1024</SizeMB>   --Optional.  To be used if your title always wants 1024 MBs pre-allocated even before launch -->
        <GrowableToMB>20480</GrowableToMB> <!-- This is not a static reservation, but the largest size your title PLS can grow to -->
    </PersistentLocalStorage>
</Game>

Growable PLS에 쓰기 전에, 타이틀은 XPersistentLocalStorageGetSpaceInfo API를 사용하여 가용 공간이 있는지 확인해야 합니다. GetDiskFreeSpaceExW를 호출하면 PLS에 남아 있는 빈 공간의 최대 크기만 타이틀에 알려주며, 이때 사용이 가능한지는 보장되지 않습니다. XPersistentLocalStorageGetSpaceInfo도 총 빈 공간과 사용 가능한 빈 공간(최소 빈 공간과 기본 드라이브의 실제 공간)을 반환합니다.

타이틀에 가용 공간보다 더 많은 공간이 필요하고 Growable PLS 할당이 채워지지 않았지만 PLS XVD를 늘리기에 드라이브상의 기본 공간이 불충분한 경우, XPersistentLocalStoragePromptUserForSpaceAsync 기능을 사용하여 타이틀에 필요한 요구되는 추가 공간을 확보할 것을 최종 사용자에게 알려야 합니다.

타이틀이 콘텐츠 업데이트를 사용하여 요청된 영구 로컬 저장소 공간의 크기를 늘릴 경우 이전 저장소 공간은 삭제되고 업그레이드 중에 해당 콘텐츠가 손실됩니다.

다운로드 가능한 콘텐츠

일단 설치된 다운로드 가능한 콘텐츠는 요청에 따라 마운트 및 마운트 해제가 가능합니다. XPackageMount를 호출하여 DLC을 마운트하고 XPackageGetMountPath를 호출하여 경로를 얻을 수 있습니다.

참고 항목

시간이 지남에 따라 달라질 수 있고 패키지가 탑재된 이후에만 유효해지므로 반환된 경로 값을 절대 하드코딩하지 마세요.

원격 본체 도구를 사용하여 게임 데이터에 액세스

원격 본체 도구는 /X 스위치로 /title을 지정하여 타이틀 실행과 동일한 매핑을 사용할 수 있습니다. 그러면 원격 본체 도구는 현재 타이틀에 설치된 게임 데이터와 스크래치 볼륨에 작성된 데이터에 액세스할 수 있습니다.

스크래치 볼륨 파일을 개발 PC에 복사하려면, xbcp를 다음과 같이 사용합니다.

xbcp /x:/title xd:\file-namec:\local-path

파일을 개발 PC에서 타이틀 볼륨으로 복사하려면, xbcp를 다음과 같이 사용합니다.

xbcp /x:/title c:\file-namexg:\dest-path

타이틀이 실행 중일 때만 개발 PC에서 PLS에 액세스할 수 있습니다. Xb 명령을 사용하여 파일을 이 위치로 그리고 이 위치에서 복사할 수 있습니다. 예:

xbcp /x:/title c:\file-namexr:\dest-path

원격 본체 도구를 사용하여 본체에서 파일 작업을 수행하는 자세한 내용은 파일 복사(xbcp.exe)(NDA 항목)권한 부여 필요를 참조하세요.

참고 항목

게임 저장 개요프랜차이즈 게임 허브