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

# DSTORAGE_REQUEST

> DSTORAGE_REQUEST

# DSTORAGE\_REQUEST

Représente une requête de lecture DirectStorage.

## Syntaxe

```cpp theme={null}
struct DSTORAGE_REQUEST {
    DSTORAGE_REQUEST_OPTIONS Options;

    union
    {
        void *Destination;

        struct
        {
            PULONG_PTR DestinationPageArray;

            UINT16 DestinationPageOffset;
        };
    };

    UINT32 DestinationSize;

    union
    {
        struct
        {
            IDStorageFileX *File;

            UINT64 FileOffset;
        };
        void *Source;

        struct
        {
            PULONG_PTR SourcePageArray;

            UINT16 SourcePageOffset;
        };
    };

    UINT32 SourceSize;

    UINT32 IntermediateSize;

    UINT64 CancellationTag;

    const CHAR *Name;
};
```

### Membres

*Options*\
Type : [DSTORAGE\_REQUEST\_OPTIONS](/fr-CA/reference/system/dstorage/structs/dstorage_request_options)

Diverses options pour cette requête.

*Destination*\
Type : void \*

Adresse de la mémoire tampon devant recevoir le résultat final de cette requête.

*DestinationPageArray*\
Type : PULONG\_PTR

Adresse du tableau de pages devant recevoir le résultat final de cette requête si *DestinationIsPhysicalPages* est spécifié. Chaque entrée est un numéro de page de 64 Ko.

*DestinationPageOffset*\
Type : UINT16

Décalage dans la page de 64 Ko où commence la destination, si *DestinationIsPhysicalPages* est spécifié.

*DestinationSize*\
Type : UINT32

La taille attendue, en octets, du résultat final de cette requête.  Si la requête n'inclut pas de décompression, cette valeur doit être égale à *SourceSize*.  Pour les requêtes qui incluent une décompression, cette valeur sera supérieure à *SourceSize*.

*File*\
Type : IDStorageFileX \*

Le fichier à partir duquel effectuer cette requête de lecture, si *SourceType* est `DSTORAGE_REQUEST_SOURCE_FILE`.

*FileOffset*\
Type : UINT64

Le décalage, en octets, dans le fichier où commence la requête de lecture, si *SourceType* est `DSTORAGE_REQUEST_SOURCE_FILE`. Si *ZlibDecompress* ou *BcpackMode* est spécifié, le décalage doit être aligné sur 16 octets.

\**Source*\
Type : void

Adresse de la mémoire tampon source à lire, si *SourceType* est `DSTORAGE_REQUEST_SOURCE_MEMORY` et que *SourceIsPhysicalPages* n'est pas spécifié.

*SourcePageArray*\
Type : PULONG\_PTR

Adresse du tableau de pages fournissant la mémoire tampon source à lire si *SourceType* est `DSTORAGE_REQUEST_SOURCE_MEMORY` et que *SourceIsPhysicalPages* est spécifié. Chaque entrée est un numéro de page de 64 Ko.

*SourcePageOffset*\
Type : UINT16

Décalage dans la page de 64 Ko où commence la source, si *SourceType* est `DSTORAGE_REQUEST_SOURCE_MEMORY` et que *SourceIsPhysicalPages* est spécifié.

*SourceSize*\
Type : UINT32

Taille, en octets, à lire à partir de la source (fichier ou mémoire).

*IntermediateSize*\
Type : UINT32

Le nombre d'octets de données compressées BCPack si *ZlibDecompress* et *BcpackMode* sont tous deux spécifiés.

*CancellationTag*\
Type : UINT64

Un nombre UINT64 arbitraire utilisé pour la correspondance d'annulation.

\**Name*\
Type : const CHAR

Nom facultatif de la requête. Utilisé pour le débogage. S'il est spécifié, la chaîne doit rester accessible jusqu'à la fin de la requête.

## Remarques

Cette structure est utilisée par la méthode
[IDStorageQueueX::EnqueueRequest](/fr-CA/reference/system/dstorage/interfaces/IDStorageQueueX/methods/idstoragequeuex_enqueuerequest). La
structure peut être réutilisée dès que `EnqueueRequest` retourne.

Une requête unique doit satisfaire l'une des exigences de taille suivantes :

* La valeur DestinationSize est inférieure ou égale à 32 Mio (**DSTORAGE\_MAX\_4K\_PAGE\_DESTINATION\_SIZE**).

  **OU**

* L'utilisation combinée de la mémoire de SourceSize (pour les requêtes de mémoire à mémoire seulement) +
  DestinationSize est inférieure ou égale à 1 Gio (**DSTORAGE\_MAX\_REQUEST\_SIZE**),
  et les mémoires tampons de plus de 32 Mio doivent utiliser des pages de 64 Kio
  ou de 2 Mio.

Pour plus d'informations, consultez la section « EnqueueRequest » de la [vue d'ensemble de DirectStorage](/fr-CA/build/console-features/storage/directstorage/directstorage-overview).

## Configuration requise

**En-tête :** dstorage\_xs.h

**Plateformes prises en charge :** consoles XBOX Series

## Voir aussi

[DStorage](/fr-CA/reference/system/dstorage/dstorage_members)


## Related topics

- [DSTORAGE_REQUEST](/reference/system/dstorage/structs/dstorage_request.md)
- [DSTORAGE_REQUEST_OPTIONS](/reference/system/dstorage/structs/dstorage_request_options.md)
