XGameSave
L’API XGameSave est conçue pour permettre la création, le chargement, l’enregistrement et la gestion des états liés au jeu. La principale différence entre celle-ci et les implémentations précédentes est qu’elle fournit une API plate donnant accès à un modèle de programmation asynchrone qui permet à l’appelant de contrôler la gestion des threads et de la mémoire de l’API.Fonctions
| Fonction | Description |
|---|---|
| XGameSaveBlobInfoCallback | Fonction de rappel permettant de récupérer les résultats de XGameSaveEnumerateBlobInfo. |
| XGameSaveCloseContainer | Ferme le XGameSaveContainer. |
| XGameSaveCloseProvider | Libère les ressources détenues par le XGameSaveProvider. |
| XGameSaveCloseUpdate | Ferme un XGameSaveUpdate. |
| XGameSaveContainerInfoCallback | Fonction de rappel d’un appel à XGameSaveGetContainerInfo. |
| XGameSaveCreateContainer | Crée un handle XGameSaveContainer. |
| XGameSaveCreateUpdate | Crée une mise à jour qui sera ensuite soumise en appelant XGameSaveSubmitUpdate. |
| XGameSaveDeleteContainer | Supprime un XGameSaveContainer du stockage cloud. |
| XGameSaveDeleteContainerAsync | Supprime un XGameSaveContainer de manière asynchrone. |
| XGameSaveDeleteContainerResult | Récupère le résultat d’un appel à XGameSaveDeleteContainerAsync ; utilisez cette fonction pour vérifier la réussite de l’appel. |
| XGameSaveEnumerateBlobInfo | Récupère les informations de blob pour le contenu d’un XGameSaveContainer. |
| XGameSaveEnumerateBlobInfoByName | Récupère les informations de blob pour le contenu d’un XGameSaveContainer, en se limitant aux blobs qui partagent un préfixe avec le paramètre blobNamePrefix. |
| XGameSaveEnumerateContainerInfo | Récupère les informations de conteneur d’un XGameSaveProvider. |
| XGameSaveEnumerateContainerInfoByName | Récupère les informations de conteneur d’un XGameSaveProvider. |
| XGameSaveGetContainerInfo | Récupère les informations des conteneurs d’un XGameSaveProvider. |
| XGameSaveGetRemainingQuota | Renvoie la quantité de données disponible pour le stockage à l’aide de l’API XGameSave. |
| XGameSaveGetRemainingQuotaAsync | Renvoie de manière asynchrone la quantité de données disponible pour le stockage à l’aide de l’API XGameSave. |
| XGameSaveGetRemainingQuotaResult | Récupère les résultats de la fonction XGameSaveGetRemainingQuotaAsync. |
| XGameSaveInitializeProvider | Fournit et initialise un handle de fournisseur XGameSave. |
| XGameSaveInitializeProviderAsync | Fournit et initialise un handle de fournisseur XGameSave de manière asynchrone. |
| XGameSaveInitializeProviderResult | Contient les résultats d’un appel à XGameSaveInitializeProviderAsync. |
| XGameSaveReadBlobData | Lit les données de blob d’un conteneur. |
| XGameSaveReadBlobDataAsync | Lit les données XGameSaveBlob d’un XGameSaveContainer de manière asynchrone. |
| XGameSaveReadBlobDataResult | Récupère les résultats d’un appel à XGameSaveReadBlobDataAsync. |
| XGameSaveSubmitBlobDelete | Ajoute une action de suppression à un XGameSaveUpdate de sauvegarde de jeu. |
| XGameSaveSubmitBlobWrite | Ajoute une action d’écriture à un XGameSaveUpdate. |
| XGameSaveSubmitUpdate | Soumet une mise à jour au service XGameSave. Met à jour les blobs d’un conteneur. |
| XGameSaveSubmitUpdateAsync | Soumet une mise à jour au service XGameSave de manière asynchrone. Met à jour les blobs d’un conteneur. |
| XGameSaveSubmitUpdateResult | Récupère le résultat de l’appel à XGameSaveSubmitUpdateAsync. |
Structures
| Structure | Description |
|---|---|
| XGameSaveBlob | Unité d’information du stockage XGameSave. Réside dans un XGameSaveContainer. |
| XGameSaveBlobInfo | Informations sur le XGameSaveBlob. |
| XGameSaveContainerInfo | Informations sur un XGameSaveContainer. |
Codes d’erreur
Les codes d’erreur suivants peuvent être renvoyés par les API XGameSave. Pour obtenir la liste complète, consultez Codes d’erreur. Pour obtenir des conseils de dépannage détaillés, consultez Débogage des sauvegardes de jeu.| Code | Valeur | Description |
|---|---|---|
| E_GS_INVALID_CONTAINER_NAME | 0x80830001 | Le nom du conteneur n’est pas valide. Les caractères valides pour un nom de conteneur sont les lettres majuscules/minuscules, les chiffres, les traits de soulignement et les barres obliques. |
| E_GS_NO_ACCESS | 0x80830002 | L’opération a échoué, car le titre n’a pas accès aux espaces de stockage du conteneur. Vérifiez que le SCID et le TitleId sont correctement configurés. |
| E_GS_OUT_OF_LOCAL_STORAGE | 0x80830003 | L’appareil ne dispose pas d’une capacité de stockage suffisante pour enregistrer le jeu. |
| E_GS_USER_CANCELED | 0x80830004 | L’utilisateur a annulé le téléchargement de ses sauvegardes de jeu. |
| E_GS_UPDATE_TOO_BIG | 0x80830005 | La taille de la mise à jour de sauvegarde est trop importante. La taille totale d’une mise à jour XGameSave doit être inférieure à GS_MAX_BLOB_SIZE (16 Mo). |
| E_GS_QUOTA_EXCEEDED | 0x80830006 | Le quota de stockage du titre pour cet utilisateur a été dépassé. |
| E_GS_PROVIDED_BUFFER_TOO_SMALL | 0x80830007 | La mémoire tampon fournie à l’API était trop petite. |
| E_GS_BLOB_NOT_FOUND | 0x80830008 | Le blob spécifié est introuvable. |
| E_GS_NO_SERVICE_CONFIGURATION | 0x80830009 | Le titre n’est pas correctement configuré pour le stockage connecté. Vérifiez que le SCID est correct et que le titre est configuré dans Partner Center. |
| E_GS_CONTAINER_NOT_IN_SYNC | 0x8083000A | Le conteneur n’est pas encore synchronisé. Assurez-vous que le conteneur XGameSave est synchronisé avant de soumettre des mises à jour. |
| E_GS_CONTAINER_SYNC_FAILED | 0x8083000B | La synchronisation du conteneur a échoué. |
| E_GS_USER_NOT_REGISTERED_IN_SERVICE | 0x8083000C | Le MSA de l’utilisateur n’est pas encore un compte XBOX services. |
| E_GS_HANDLE_EXPIRED | 0x8083000D | Le handle utilisé par la fonction a expiré et doit être réacquis. |
| E_GS_ASYNC_FUNCTION_REQUIRED | 0x8083000E | Cette fonction synchrone est appelée sur un thread sensible au temps et risque de provoquer des interblocages. Utilisez plutôt l’implémentation asynchrone. |
| E_GS_PROVIDER_MISMATCH | 0x8083000F | Le jeu mélange des appels XGameSave et XGameSaveFiles, ce qui n’est pas pris en charge. |
