IDStorageQueueX::EnqueueStatus
将状态写入排入队列。
语法
void EnqueueStatus(
IDStorageStatusArrayX *statusArray,
UINT32 index
)
参数
statusArray
类型:IDStorageStatusArrayX \*
一个 IDStorageStatusArrayX 对象。
索引
类型:UINT32
要接收状态的 IDStorageStatusArrayX
对象中的状态条目的索引。
返回值
类型:void
备注
状态数组在所有请求完成之前都会发出信号。
调用此方法后,游戏线程可以根据需要轮询 IDStorageStatusArrayX
对象。 (在调用此方法之前,状态是未定义的。)如果在上一个状态项之后发生了任何故障,则排入队列的状态条目的 HResult 将存储第一个失败请求的失败代码。
如果自上次提交以来,EnqueueStatus
方法占据了队列容量的一半,则会作为 EnqueueStatus
调用的一部分触发自动提交。
在大多数情况下,此方法只是对队列进行内存写入,因此完成 CPU 所需的时间非常少。 但是,如果触发自动提交,则需要花费更多 CPU 时间,包括内核模式转换和处理调用方线程中以前提交的所有请求。
如果不需要自动提交,建议游戏使用容量足够大的队列,并在适当时手动调用“提交”。
有关详细信息,请参阅 DirectStorage 概述中的“通知”和“EnqueueStatus/EnqueueSignal/EnqueueSetEvent”部分。
要求
头文件:dstorage_xs.h
库:dstorage_xs.lib
支持的平台:Xbox Series 主机
另请参阅
IDStorageFactoryX::CreateStatusArray
IDStorageQueueX::EnqueueSignal
IDStorageQueueX
DStorage