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

# XPackageEstimateDownloadSize

> XPackageEstimateDownloadSize

# XPackageEstimateDownloadSize

Calcule la taille de téléchargement des blocs qui correspondent aux sélecteurs d'installation spécifiés.

## Syntaxe

```cpp theme={null}
HRESULT XPackageEstimateDownloadSize(  
         const char* packageIdentifier,  
         uint32_t selectorCount,  
         XPackageChunkSelector* selectors,  
         uint64_t* downloadSize,  
         bool* shouldPresentUserConfirmation  
)  
```

### Paramètres

*packageIdentifier*   \_In\_z\_\
Type : char\*

Chaîne qui identifie de façon unique le package installé sur le disque. Pour plus d'informations sur les identificateurs de package, consultez [Gérer le contenu téléchargeable (DLC) et ses licences](/fr-CA/publishing/xstore-commerce/xstore-dlc).

*selectorCount*   \_In\_\
Type : uint32\_t

Nombre de sélecteurs dans le paramètre *selectors*.

*selectors*   \_In\_reads\_(selectorCount)\
Type : [XPackageChunkSelector\*](/fr-CA/reference/system/xpackage/structs/xpackagechunkselector)

Tableau de sélecteurs qui spécifient les blocs sur lesquels opérer.

*downloadSize*   \_Out\_\
Type : uint64\_t\*

Au retour, contient la taille de téléchargement des sélecteurs d'installation spécifiés.

*shouldPresentUserConfirmation*   \_Out\_opt\_\
Type : bool\*

Retourne true si le téléchargement nécessite la confirmation de l'utilisateur; sinon, retourne false.

### Valeur de retour

Type : HRESULT

Code de réussite ou d'erreur HRESULT.

## Remarques

<Note>Il n'est pas sécuritaire d'appeler cette fonction sur un thread sensible au temps. Pour plus d'informations, consultez [Threads sensibles au temps](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads).</Note>

S'il est fourni, le paramètre *shouldPresentUserConfirmation* sera défini sur true si la taille de téléchargement estimée est suffisamment grande pour qu'il faille demander à l'utilisateur d'accepter la taille du téléchargement.

L'exemple suivant accepte un nom de piste pour un jeu de course et, si la piste n'est pas installée, affiche la taille de téléchargement de la piste :

```cpp theme={null}
HRESULT ListDownloadSize(char* trackName)
{
    XPackageChunkSelector selector;
    selector.type = XPackageChunkSelectorType::Tag;
    selector.tag = trackName;

    char id[XPACKAGE_IDENTIFIER_MAX_LENGTH];
    HRESULT hr = XPackageGetCurrentProcessPackageIdentifier(_countof(id), id);
    if (FAILED(hr)) return hr;

    XPackageChunkAvailability availability;
    hr = XPackageFindChunkAvailability(id, 1, &selector, &availability);
    if (FAILED(hr)) return hr;

    if (availability == XPackageChunkAvailability::Installable)
    {
        uint64_t downloadSize;
        hr = XPackageEstimateDownloadSize(id, 1, &selector, &downloadSize, nullptr);
        if (FAILED(hr)) return hr;

        printf("Download Size for track %s: %I64u\n", trackName, downloadSize);
    }

    return hr;
}
```

## Configuration requise

**En-tête :** XPackage.h

**Bibliothèque :** xgameruntime.lib

**Plateformes prises en charge :** Windows, consoles de la famille XBOX One et consoles XBOX Series

## Documentation conceptuelle

* [Threads sensibles au temps](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)

## Voir aussi

[XPackage](/fr-CA/reference/system/xpackage/xpackage_members)\
[Installation en continu et Intelligent Delivery](/fr-CA/build/core-features/common/packaging/overviews/streaming_install-intelligent_delivery)


## Related topics

- [XPackageEstimateDownloadSize](/reference/system/xpackage/functions/xpackageestimatedownloadsize.md)
- [XPackageInstallChunksAsync](/reference/system/xpackage/functions/xpackageinstallchunksasync.md)
- [XPackageInstallChunks](/reference/system/xpackage/functions/xpackageinstallchunks.md)
