XGameSave
XGameSave API는 게임 관련 상태를 만들고, 로드하고, 저장하고, 관리하는 기능을 제공하도록 설계되었습니다. 이전 구현과의 주요 차이점은 호출자가 API 동작의 스레딩 및 메모리 관리 방식을 제어할 수 있도록 비동기 프로그래밍 모델에 대한 액세스를 제공하는 평면 API를 제공한다는 점입니다.함수
| 함수 | 설명 |
|---|---|
| XGameSaveBlobInfoCallback | XGameSaveEnumerateBlobInfo의 결과를 검색하기 위한 콜백 함수입니다. |
| XGameSaveCloseContainer | XGameSaveContainer를 닫습니다. |
| XGameSaveCloseProvider | XGameSaveProvider가 보유한 리소스를 해제합니다. |
| XGameSaveCloseUpdate | XGameSaveUpdate를 닫습니다. |
| XGameSaveContainerInfoCallback | XGameSaveGetContainerInfo에 대한 호출을 위한 콜백 함수입니다. |
| XGameSaveCreateContainer | XGameSaveContainer 핸들을 만듭니다. |
| XGameSaveCreateUpdate | 나중에 XGameSaveSubmitUpdate를 호출하여 제출될 업데이트를 만듭니다. |
| XGameSaveDeleteContainer | 클라우드 저장소에서 XGameSaveContainer를 삭제합니다. |
| XGameSaveDeleteContainerAsync | XGameSaveContainer를 비동기적으로 삭제합니다. |
| XGameSaveDeleteContainerResult | XGameSaveDeleteContainerAsync 호출의 결과를 검색합니다. 이 함수를 사용하여 호출의 성공 여부를 확인합니다. |
| XGameSaveEnumerateBlobInfo | XGameSaveContainer의 콘텐츠에 대한 Blob 정보를 검색합니다. |
| XGameSaveEnumerateBlobInfoByName | blobNamePrefix 매개 변수와 접두사가 일치하는 Blob으로 제한된, XGameSaveContainer 콘텐츠에 대한 Blob 정보를 검색합니다. |
| XGameSaveEnumerateContainerInfo | XGameSaveProvider에 대한 컨테이너 정보를 검색합니다. |
| XGameSaveEnumerateContainerInfoByName | XGameSaveProvider에 대한 컨테이너 정보를 검색합니다. |
| XGameSaveGetContainerInfo | XGameSaveProvider의 컨테이너에 대한 정보를 검색합니다. |
| XGameSaveGetRemainingQuota | XGameSave API를 사용하여 저장할 수 있는 데이터의 양을 반환합니다. |
| XGameSaveGetRemainingQuotaAsync | XGameSave API를 사용하여 저장할 수 있는 데이터의 양을 비동기적으로 반환합니다. |
| XGameSaveGetRemainingQuotaResult | XGameSaveGetRemainingQuotaAsync 함수의 결과를 검색합니다. |
| XGameSaveInitializeProvider | XGameSave Provider 핸들을 제공하고 초기화합니다. |
| XGameSaveInitializeProviderAsync | XGameSave Provider 핸들을 비동기적으로 제공하고 초기화합니다. |
| XGameSaveInitializeProviderResult | XGameSaveInitializeProviderAsync 호출의 결과를 포함합니다. |
| XGameSaveReadBlobData | 컨테이너에 대한 Blob 데이터를 읽습니다. |
| XGameSaveReadBlobDataAsync | XGameSaveContainer에서 XGameSaveBlob 데이터를 비동기적으로 읽습니다. |
| XGameSaveReadBlobDataResult | XGameSaveReadBlobDataAsync 호출의 결과를 검색합니다. |
| XGameSaveSubmitBlobDelete | 게임 저장 XGameSaveUpdate에 삭제 동작을 추가합니다. |
| XGameSaveSubmitBlobWrite | XGameSaveUpdate에 쓰기 동작을 추가합니다. |
| XGameSaveSubmitUpdate | XGameSave 서비스에 업데이트를 제출합니다. 컨테이너 내의 Blob을 업데이트합니다. |
| XGameSaveSubmitUpdateAsync | XGameSave 서비스에 업데이트를 비동기적으로 제출합니다. 컨테이너 내의 Blob을 업데이트합니다. |
| XGameSaveSubmitUpdateResult | XGameSaveSubmitUpdateAsync 호출의 결과를 검색합니다. |
구조체
| 구조체 | 설명 |
|---|---|
| XGameSaveBlob | XGameSave 저장소의 정보 단위입니다. XGameSaveContainer 내에 있습니다. |
| XGameSaveBlobInfo | XGameSaveBlob에 대한 정보입니다. |
| XGameSaveContainerInfo | XGameSaveContainer에 대한 정보입니다. |
오류 코드
XGameSave API에서 다음 오류 코드가 반환될 수 있습니다. 전체 목록은 오류 코드를 참조하세요. 자세한 문제 해결 지침은 게임 저장 디버깅을 참조하세요.| 코드 | 값 | 설명 |
|---|---|---|
| E_GS_INVALID_CONTAINER_NAME | 0x80830001 | 컨테이너의 이름이 유효하지 않습니다. 유효한 컨테이너 이름 문자에는 대/소문자, 숫자, 밑줄, 슬래시가 포함됩니다. |
| E_GS_NO_ACCESS | 0x80830002 | 타이틀이 컨테이너 저장소 공간에 액세스할 수 없어 작업이 실패했습니다. SCID와 TitleId가 올바르게 구성되었는지 확인합니다. |
| E_GS_OUT_OF_LOCAL_STORAGE | 0x80830003 | 게임을 저장할 저장 용량이 장치에 부족합니다. |
| E_GS_USER_CANCELED | 0x80830004 | 사용자가 저장 게임 다운로드를 취소했습니다. |
| E_GS_UPDATE_TOO_BIG | 0x80830005 | 저장 업데이트의 크기가 너무 큽니다. XGameSave 업데이트의 전체 크기는 GS_MAX_BLOB_SIZE(16MB)보다 작아야 합니다. |
| E_GS_QUOTA_EXCEEDED | 0x80830006 | 이 사용자에 대한 타이틀의 저장 할당량이 초과되었습니다. |
| E_GS_PROVIDED_BUFFER_TOO_SMALL | 0x80830007 | API에 제공된 버퍼가 너무 작습니다. |
| E_GS_BLOB_NOT_FOUND | 0x80830008 | 지정된 Blob을 찾을 수 없습니다. |
| E_GS_NO_SERVICE_CONFIGURATION | 0x80830009 | 연결된 저장소에 대해 타이틀이 올바르게 구성되어 있지 않습니다. SCID가 올바른지, 타이틀이 파트너 센터에 구성되어 있는지 확인합니다. |
| E_GS_CONTAINER_NOT_IN_SYNC | 0x8083000A | 컨테이너가 아직 동기화되지 않았습니다. 업데이트를 제출하기 전에 XGameSave 컨테이너가 동기화되어 있는지 확인합니다. |
| E_GS_CONTAINER_SYNC_FAILED | 0x8083000B | 컨테이너 동기화에 실패했습니다. |
| E_GS_USER_NOT_REGISTERED_IN_SERVICE | 0x8083000C | 사용자의 MSA가 아직 XBOX 서비스 계정이 아닙니다. |
| E_GS_HANDLE_EXPIRED | 0x8083000D | 함수에서 사용하는 핸들이 만료되었으므로 다시 획득해야 합니다. |
| E_GS_ASYNC_FUNCTION_REQUIRED | 0x8083000E | 이 동기 함수는 시간에 민감한 스레드에서 호출되고 있어 교착 상태의 위험이 있습니다. 대신 비동기 구현을 사용합니다. |
| E_GS_PROVIDER_MISMATCH | 0x8083000F | 게임이 XGameSave와 XGameSaveFiles 호출을 혼합하여 사용하고 있는데, 이는 지원되지 않습니다. |
