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

> DSTORAGE_REQUEST_OPTIONS

# DSTORAGE\_REQUEST\_OPTIONS

Options for a DirectStorage read request.

## Syntax

```cpp theme={null}
union DSTORAGE_REQUEST_OPTIONS {
    struct {
        UINT64 ZlibDecompress : 1;
        DSTORAGE_BCPACK_MODE BcpackMode : 4;  
        DSTORAGE_SWIZZLE_MODE SwizzleMode : 16;  
        UINT64 DestinationIsPhysicalPages : 1;  
        DSTORAGE_REQUEST_SOURCE_TYPE SourceType : 1;  
        UINT64 SourceIsPhysicalPages : 1;  
        UINT64 Reserved : 40;  
    };
    UINT64 AsUINT64;
};
```

### Members

*ZlibDecompress*\
Type: UINT64 : 1

Boolean value indicating whether to perform RFC 1950 decompression.

*BcpackMode*\
Type: [DSTORAGE\_BCPACK\_MODE](/reference/system/dstorage/enums/dstorage_bcpack_mode) : 4

`DSTORAGE_BCPACK_MODE` value indicating the type of BCPack decompression to perform.

*SwizzleMode*\
Type: [DSTORAGE\_SWIZZLE\_MODE](/reference/system/dstorage/enums/dstorage_swizzle_mode) : 16

`DSTORAGE_SWIZZLE_MODE` value indicating the type of swizzle operation to perform.

*DestinationIsPhysicalPages*\
Type: UINT64 : 1

Boolean value indicating that destination memory is an array of physical pages allocated through [XMemAllocatePhysicalPages (NDA topic)](/reference/system/xmem/functions/xmemallocatephysicalpages).

*SourceType*\
Type: [DSTORAGE\_REQUEST\_SOURCE\_TYPE](/reference/system/dstorage/enums/dstorage_request_source_type)

`DSTORAGE_REQUEST_SOURCE_TYPE` value indicating whether the source of the request is a file or a block of memory.

*SourceIsPhysicalPages*\
Type: UINT64

When *SourceType* is `DSTORAGE_REQUEST_SOURCE_MEMORY`, this Boolean value indicates that source memory is an array of physical pages allocated through [XMemAllocatePhysicalPages (NDA topic)](/reference/system/xmem/functions/xmemallocatephysicalpages).

*Reserved*\
Type: UINT64 : 40

Reserved. Must be zero.

*AsUINT64*\
Type: UINT64

UINT64 representation of the structure.

## Remarks

This structure is used in the [DSTORAGE\_REQUEST](/reference/system/dstorage/structs/dstorage_request) and [DSTORAGE\_ERROR\_RECORD](/reference/system/dstorage/structs/dstorage_error_record) structures. The structure can be reused as soon as [IDStorageQueueX::EnqueueRequest](/reference/system/dstorage/interfaces/IDStorageQueueX/methods/idstoragequeuex_enqueuerequest) returns.

For more information about read requests, see the "EnqueueRequest" section of [DirectStorage Overview](/build/console-features/storage/directstorage/directstorage-overview).

## Requirements

**Header:** dstorage\_xs.h

**Supported platforms:** XBOX Series consoles

## See also

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


## Related topics

- [DStorage](/reference/system/dstorage/dstorage_members.md)
- [DSTORAGE_REQUEST_SOURCE_TYPE](/reference/system/dstorage/enums/dstorage_request_source_type.md)
- [DSTORAGE_SWIZZLE_MODE](/reference/system/dstorage/enums/dstorage_swizzle_mode.md)
- [DSTORAGE_BCPACK_MODE](/reference/system/dstorage/enums/dstorage_bcpack_mode.md)
- [DSTORAGE_REQUEST](/reference/system/dstorage/structs/dstorage_request.md)
