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

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 est supérieure à *SourceSize*.

*File*\
Type : IDStorageFileX \*

Fichier à partir duquel effectuer cette requête de lecture, si *SourceType* a la valeur `DSTORAGE_REQUEST_SOURCE_FILE`.

*FileOffset*\
Type : UINT64

Décalage, en octets, dans le fichier auquel commence la requête de lecture, si *SourceType* a la valeur `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* a la valeur `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* a la valeur `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* a la valeur `DSTORAGE_REQUEST_SOURCE_MEMORY` et que *SourceIsPhysicalPages* est spécifié.

*SourceSize*\
Type : UINT32

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

*IntermediateSize*\
Type : UINT32

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

*CancellationTag*\
Type : UINT64

Nombre UINT64 arbitraire utilisé pour la correspondance lors de l'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/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 mémoire combinée de SourceSize (pour les requêtes de mémoire à mémoire uniquement) +
  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 [Vue d'ensemble de DirectStorage](/fr/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/reference/system/dstorage/dstorage_members)


## Related topics

- [DSTORAGE_REQUEST_OPTIONS](/fr/reference/system/dstorage/structs/dstorage_request_options.md)
- [DStorage](/fr/reference/system/dstorage/dstorage_members.md)
- [IDStorageQueueX::EnqueueRequest](/fr/reference/system/dstorage/interfaces/IDStorageQueueX/methods/idstoragequeuex_enqueuerequest.md)
- [Vue d'ensemble de DirectStorage](/fr/build/console-features/storage/directstorage/directstorage-overview.md)
- [DSTORAGE_REQUEST_SOURCE_TYPE](/fr/reference/system/dstorage/enums/dstorage_request_source_type.md)
