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

Representa una solicitud de lectura de DirectStorage.

## Sintaxis

```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;
};
```

### Miembros

*Options*\
Tipo: [DSTORAGE\_REQUEST\_OPTIONS](/reference/system/dstorage/structs/dstorage_request_options)

Varias opciones para esta solicitud.

*Destination*\
Tipo: void \*

Dirección del búfer que recibirá el resultado final de esta solicitud.

*DestinationPageArray*\
Tipo: PULONG\_PTR

Dirección de la matriz de páginas que recibirá el resultado final de esta solicitud si se especifica *DestinationIsPhysicalPages*. Cada entrada es un número de página de 64 KB.

*DestinationPageOffset*\
Tipo: UINT16

Desplazamiento dentro de la página de 64 KB donde comienza el destino, si se especifica *DestinationIsPhysicalPages*.

*DestinationSize*\
Tipo: UINT32

El tamaño esperado, en bytes, del resultado final de esta solicitud.  Si la solicitud no incluye descompresión, debe ser igual a *SourceSize*.  Para las solicitudes que incluyen descompresión, este valor será mayor que *SourceSize*.

*File*\
Tipo: IDStorageFileX \*

El archivo desde el que se realiza esta solicitud de lectura, si *SourceType* es `DSTORAGE_REQUEST_SOURCE_FILE`.

*FileOffset*\
Tipo: UINT64

El desplazamiento, en bytes, dentro del archivo en el que comienza la solicitud de lectura, si *SourceType* es `DSTORAGE_REQUEST_SOURCE_FILE`. Si se especifica *ZlibDecompress* o *BcpackMode*, el desplazamiento debe estar alineado a 16 bytes.

\**Source*\
Tipo: void

Dirección del búfer de origen desde el que se leerá, si *SourceType* es `DSTORAGE_REQUEST_SOURCE_MEMORY` y no se especifica *SourceIsPhysicalPages*.

*SourcePageArray*\
Tipo: PULONG\_PTR

Dirección de la matriz de páginas que proporciona el búfer de origen desde el que se leerá si *SourceType* es `DSTORAGE_REQUEST_SOURCE_MEMORY` y se especifica *SourceIsPhysicalPages*. Cada entrada es un número de página de 64 KB.

*SourcePageOffset*\
Tipo: UINT16

Desplazamiento dentro de la página de 64 KB donde comienza el origen, si *SourceType* es `DSTORAGE_REQUEST_SOURCE_MEMORY` y se especifica *SourceIsPhysicalPages*.

*SourceSize*\
Tipo: UINT32

Tamaño, en bytes, que se leerá del archivo o del origen de memoria.

*IntermediateSize*\
Tipo: UINT32

El número de bytes de datos comprimidos con BCPack si se especifican tanto *ZlibDecompress* como *BcpackMode*.

*CancellationTag*\
Tipo: UINT64

Un número UINT64 arbitrario usado para la coincidencia de cancelación.

\**Name*\
Tipo: const CHAR

Nombre opcional de la solicitud. Se usa para la depuración. Si se especifica, la cadena debe permanecer accesible hasta que se complete la solicitud.

## Comentarios

Esta estructura la usa el método
[IDStorageQueueX::EnqueueRequest](/reference/system/dstorage/interfaces/IDStorageQueueX/methods/idstoragequeuex_enqueuerequest). La
estructura se puede reutilizar en cuanto `EnqueueRequest` devuelve el control.

Una única solicitud debe cumplir uno de los siguientes requisitos de tamaño:

* DestinationSize es igual o menor que 32 MiB (**DSTORAGE\_MAX\_4K\_PAGE\_DESTINATION\_SIZE**).

  **O**

* El uso de memoria combinado de SourceSize (solo para solicitudes de memoria a memoria) +
  DestinationSize es igual o menor que 1 GiB (**DSTORAGE\_MAX\_REQUEST\_SIZE**),
  y los búferes de memoria mayores de 32 MiB deben usar páginas de 64 KiB
  o páginas de 2 MiB.

Para obtener más información, consulte la sección "EnqueueRequest" de [Información general de DirectStorage](/build/console-features/storage/directstorage/directstorage-overview).

## Requisitos

**Encabezado:** dstorage\_xs.h

**Plataformas compatibles:** consolas XBOX Series

## Consulte también

[DStorage](/reference/system/dstorage/dstorage_members)


## Related topics

- [DSTORAGE_REQUEST_OPTIONS](/es/reference/system/dstorage/structs/dstorage_request_options.md)
- [DStorage](/es/reference/system/dstorage/dstorage_members.md)
- [IDStorageQueueX::EnqueueRequest](/es/reference/system/dstorage/interfaces/IDStorageQueueX/methods/idstoragequeuex_enqueuerequest.md)
- [Información general de DirectStorage](/es/build/console-features/storage/directstorage/directstorage-overview.md)
- [DSTORAGE_REQUEST_SOURCE_TYPE](/es/reference/system/dstorage/enums/dstorage_request_source_type.md)
