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