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

# IDStorageQueueX::EnqueueRequest

> IDStorageQueueX::EnqueueRequest

# IDStorageQueueX::EnqueueRequest

Enqueues a read request.

## Syntax

```cpp theme={null}
void EnqueueRequest(  
         const DSTORAGE_REQUEST *request  
)  
```

### Parameters

*request*\
Type: [DSTORAGE\_REQUEST](/reference/system/dstorage/structs/dstorage_request)

The read request to be queued.

### Return value

Type: void

## Remarks

This method enqueues data from *request*. The
[DSTORAGE\_REQUEST](/reference/system/dstorage/structs/dstorage_request) structure can be reused as soon as the
method returns.

If the `EnqueueRequest` method fills half of the queue's capacity since the last
submission, it triggers an automatic submission as part of the `EnqueueRequest`
call.

In most cases, this method simply does a memory write to the queue, thus takes
very little CPU time to complete. However, if automatic submission is triggered,
it takes significantly more CPU time, including a kernel mode transition and
processing all of the previously submitted requests in the caller thread.

If automatic submission is not desirable, games are recommended to use a queue
with large enough capacity and call [Submit](/reference/system/dstorage/interfaces/IDStorageQueueX/methods/idstoragequeuex_submit) manually
when appropriate.

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

## Requirements

**Header:** dstorage\_xs.h

**Library:** dstorage\_xs.lib

**Supported platforms:** XBOX Series consoles

## See also

[IDStorageQueueX](/reference/system/dstorage/interfaces/IDStorageQueueX/idstoragequeuex)\
[DStorage](/reference/system/dstorage/dstorage_members)
