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

# Installation en streaming : état

> Installation en streaming : état

Pendant qu'une installation est en cours et qu'un utilisateur joue, le titre doit suivre le contenu nécessaire à la prise en charge du gameplay et vérifier si le contenu requis a été installé. Un titre peut utiliser des API système pour interroger l'état des segments (chunks) sur le disque dur et la progression du contenu en cours de téléchargement.

Si l'utilisateur tente d'accéder à une partie du jeu qui nécessite du contenu pas encore installé, le titre doit l'en informer en affichant une boîte de dialogue ou une barre de progression, et il doit communiquer la progression de l'installation. En outre, le titre doit toujours offrir à l'utilisateur la possibilité de quitter l'écran de progression, idéalement pour lui permettre de profiter du contenu pendant son installation. Voici un exemple.

En jouant à la campagne solo d'un jeu de tir, l'utilisateur arrive à un point où le contenu nécessaire à la zone suivante de la campagne n'est pas encore installé. Une bonne expérience utilisateur consisterait à afficher une barre de progression indiquant l'état de l'acquisition du contenu, ainsi qu'une option permettant de rejoindre une partie multijoueur. Cette option serait rendue possible en incluant un sous-ensemble du contenu multijoueur dans les données requises pour lancer le titre.

Un titre peut surveiller et vérifier l'installation, et il peut recevoir une alerte à la fin d'une installation. Vous pouvez surveiller l'installation d'un package entier ou d'un sous-ensemble de segments du package. Pour créer un moniteur d'installation, utilisez [XPackageCreateInstallationMonitor](/fr/reference/system/xpackage/functions/xpackagecreateinstallationmonitor). Indiquez que le moniteur porte sur l'un des éléments suivants :

* Un ensemble donné de segments, en spécifiant des sélecteurs comme paramètres
* Le package entier, en spécifiant zéro sélecteur

Après avoir créé le moniteur d'installation, inscrivez un gestionnaire pour l'un des événements suivants :

* L'événement *progression de l'installation modifiée*, à l'aide de [XPackageRegisterInstallationProgressChanged](/fr/reference/system/xpackage/functions/xpackageregisterinstallationprogresschanged)
* L'événement *package installé*, à l'aide de [XPackageRegisterPackageInstalled](/fr/reference/system/xpackage/functions/xpackageregisterpackageinstalled)

L'événement *package installé* indique le moment où l'installation du package entier est terminée. L'événement *progression modifiée* vous permet de surveiller la progression de l'installation. Notez que l'événement *progression modifiée* indique également la fin de l'installation ; il n'est donc pas nécessaire d'inscrire un gestionnaire *package installé* si vous avez déjà inscrit un gestionnaire *progression modifiée*. Voici un exemple.

Un jeu a implémenté un marqueur de lancement ; il peut donc être exécuté avant d'être complètement installé. Le jeu doit savoir quelles parties sont installées et lesquelles ne le sont pas. Pour présenter les circuits disponibles à l'utilisateur, le jeu doit savoir quand les segments associés à un circuit portant un nom donné sont installés.

```cpp theme={null}
class GameTrackMonitor 
{ 
public: 
 
    HRESULT StartMonitoring(XTaskQueueHandle queue, const char* trackName) 
    { 
        char id[PACKAGE_IDENTIFIER_MAX_LENGTH]; 
 
        XPackageChunkSelector selector; 
        selector.type = XPackageChunkSelectorType::Tag; 
        selector.tag = trackName; 
 
        RETURN_IF_FAILED(XPackageGetCurrentProcessPackageIdentifier(_countof(id), id)); 
 
        XPackageInstallationMonitorHandle monitor; 
 
        RETURN_IF_FAILED(XPackageCreateInstallationMonitor( 
            id,         // Identity to monitor. 
            1,          // Number of selectors. 
            &selector,  // Selectors. 
            1000,       // Resolution of monitor in ms. 
            queue,      // Queue where updates are performed. 
            &monitor)); 
 
        XTaskQueueRegistrationToken token; 
 
        HRESULT hr = XPackageRegisterInstallationProgressChanged( 
            monitor, 
            this, 
            [](void *context, XPackageInstallationMonitorHandle monitor) 
        { 
            GameTrackMonitor* pthis = static_cast<GameTrackMonitor*>(context); 
            XPackageInstallationProgress progress; 
 
            XPackageGetInstallationProgress(monitor, &progress); 
            pthis->DrawProgress(progress); 
            if (progress.completed) 
            { 
                pthis->TrackReady(); 
                XPackageCloseInstallationMonitorHandle(monitor); 
            } 
        }, &token); 
 
        if (FAILED(hr)) 
        { 
            XPackageCloseInstallationMonitorHandle(monitor); 
        } 
 
        return hr; 
    } 
 
private: 
 
    void DrawProgress(const XPackageInstallationProgress& progress) 
    { 
        // ... 
    } 
 
    void TrackReady() 
    { 
        // ... 
    } 
};
```

## Documentation de référence des API

* [XPackage (contenu de l'API)](/fr/reference/system/xpackage/xpackage_members)
  * Fonctions
    * [XPackageCreateInstallationMonitor](/fr/reference/system/xpackage/functions/xpackagecreateinstallationmonitor)
    * [XPackageRegisterInstallationProgressChanged](/fr/reference/system/xpackage/functions/xpackageregisterinstallationprogresschanged)
    * [XPackageRegisterPackageInstalled](/fr/reference/system/xpackage/functions/xpackageregisterpackageinstalled)


## Related topics

- [Exigences XBOX testées lors de la certification pour les jeux sur console XBOX](/fr/publishing/certification/console-cert-tested-requirements.md)
- [Étapes de test de validation des supports](/fr-CA/publishing/game-publishing/concepts/certification/certification-media-validation-test-steps.md)
- [Tools for streaming installation](/build/core-features/common/packaging/deployment/atoc-deployment-tools.md)
- [Streaming installation: debugging](/build/core-features/common/packaging/packaging-debugging.md)
- [Streaming installation: status](/build/core-features/common/packaging/packaging-installstatus.md)
