IDStorageQueueX::EnqueueStatus
Enqueues a status write.
Syntax
void EnqueueStatus(
IDStorageStatusArrayX *statusArray,
UINT32 index
)
Parameters
statusArray
Type: IDStorageStatusArrayX
An IDStorageStatusArrayX object.
index
Type: UINT32
Index of the status entry in the IDStorageStatusArrayX
object to receive the status.
Return value
Type: void
Remarks
The status array is signaled when all requests enqueued before it complete.
After calling this method, a title thread can poll the IDStorageStatusArrayX
object as needed. (The state of the status is undefined until this method is
called.) If any failures occurred since the previous status entry, the HResult
of the enqueued status entry stores the failure code of the first failed
request.
If the EnqueueStatus
method fills half of the queue's capacity since the last
submission, it triggers an automatic submission as part of the EnqueueStatus
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 manually when appropriate.
For more information, see the "Notification" and "EnqueueStatus/EnqueueSignal/EnqueueSetEvent" sections in DirectStorage overview.
Requirements
Header: dstorage_xs.h
Library: dstorage_xs.lib
Supported platforms: Xbox Series consoles
See also
IDStorageFactoryX::CreateStatusArray
IDStorageQueueX::EnqueueSignal
IDStorageQueueX
DStorage