> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 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](https://docs.xbox.com/reference/system/dstorage/enums/dstorage_bcpack_mode.md) : 4

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

*SwizzleMode*\
Type: [DSTORAGE\_SWIZZLE\_MODE](https://docs.xbox.com/reference/system/dstorage/enums/dstorage_swizzle_mode.md) : 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)](https://docs.xbox.com/reference/system/xmem/functions/xmemallocatephysicalpages.md).

*SourceType*\
Type: [DSTORAGE\_REQUEST\_SOURCE\_TYPE](https://docs.xbox.com/reference/system/dstorage/enums/dstorage_request_source_type.md)

`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)](https://docs.xbox.com/reference/system/xmem/functions/xmemallocatephysicalpages.md).

*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](https://docs.xbox.com/reference/system/dstorage/structs/dstorage_request.md) and [DSTORAGE\_ERROR\_RECORD](https://docs.xbox.com/reference/system/dstorage/structs/dstorage_error_record.md) structures. The structure can be reused as soon as [IDStorageQueueX::EnqueueRequest](https://docs.xbox.com/reference/system/dstorage/interfaces/IDStorageQueueX/methods/idstoragequeuex_enqueuerequest.md) returns.

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

## Requirements

**Header:** dstorage\_xs.h

**Supported platforms:** XBOX Series consoles

## See also

[DStorage](https://docs.xbox.com/reference/system/dstorage/dstorage_members.md)


## Related topics

- [DSTORAGE_SWIZZLE_MODE](https://docs.xbox.com/reference/system/dstorage/enums/dstorage_swizzle_mode.md)
- [DSTORAGE_REQUEST_SOURCE_TYPE](https://docs.xbox.com/reference/system/dstorage/enums/dstorage_request_source_type.md)
- [DSTORAGE_BCPACK_MODE](https://docs.xbox.com/reference/system/dstorage/enums/dstorage_bcpack_mode.md)
- [DSTORAGE_REQUEST](https://docs.xbox.com/reference/system/dstorage/structs/dstorage_request.md)
- [DStorage (API contents)](https://docs.xbox.com/reference/system/dstorage/dstorage_members.md)
