IDXCoreAdapter::QueryState 方法
检索适配器上指定项的当前状态。 在为属性类型调用 QueryState 之前,请调用 IsQueryStateSupported 以确认查询状态类型适用于此适配器和操作系统 (OS) 。
语法
virtual HRESULT STDMETHODCALLTYPE QueryState(
DXCoreAdapterState state,
size_t inputStateDetailsSize,
_In_reads_bytes_opt_(inputStateDetailsSize) const void *inputStateDetails,
size_t outputBufferSize,
_Out_writes_bytes_(outputBufferSize) void *outputBuffer) = 0;
template <class T1, class T2>
HRESULT QueryState(
DXCoreAdapterState state,
_In_reads_bytes_opt_(sizeof(T1)) const T1 *inputStateDetails,
_Out_writes_bytes_(sizeof(T2)) T2 *outputBuffer);
template <class T>
HRESULT QueryState(
DXCoreAdapterState state,
_Out_writes_bytes_(sizeof(T)) T *outputBuffer);
参数
state
要检索其状态的适配器上的状态项的类型。 有关每种适配器状态类型的详细信息,请参阅 DXCoreAdapterState 中的表。
inputStateDetailsSize
类型: size_t
输入状态详细信息缓冲区的大小(以字节为单位), (输入状态详细信息缓冲区(可选) 在 inputStateDetails 中分配和提供)。
inputStateDetails [in]
类型: void const*
指向在应用程序中分配的常量输入状态详细信息缓冲区的可选指针,其中包含你在 状态中指定的状态类型所需的任何请求信息。 有关给定状态类型的任何输入缓冲区要求的详细信息,请参阅 DXCoreAdapterState 中的表。
outputBufferSize
类型: size_t
在 outputBuffer 中分配和提供的输出缓冲区的大小(以字节为单位)。
outputBuffer [out]
类型: void*
指向在应用程序中分配且函数填充的输出缓冲区的指针。 有关给定状态类型的输出缓冲区要求的详细信息,请参阅 DXCoreAdapterState 中的表。
返回
类型: HRESULT
如果函数成功,则返回 S_OK。 否则,它将返回 HRESULT错误代码。
返回值 | 描述 |
---|---|
DXGI_ERROR_DEVICE_REMOVED | 适配器不再处于有效状态。 |
DXGI_ERROR_INVALID_CALL | 此操作系统 (OS) 无法识别 状态中指定的状态 类型。 调用 IsQueryStateSupported 以确认查询状态类型适用于此适配器和操作系统 (OS) 。 |
DXGI_ERROR_UNSUPPORTED | 适配器不支持状态中指定的 状态 类型。 调用 IsQueryStateSupported 以确认查询状态类型适用于此适配器和操作系统 (OS) 。 |
E_INVALIDARG | 对于 outputBuffer (或 inputStateDetail, 需要输入状态详细信息缓冲区) ,则提供缓冲区大小不足。 |
E_POINTER | nullptr 为 outputBuffer (或 inputStateDetail 提供 ,其中需要输入状态详细信息缓冲区) 。 |
注解
有关每个适配器状态类型以及使用的输入和输出的详细信息,请参阅 DXCoreAdapterState 。 此函数在填充 outputBuffer 缓冲区之前将其归零。
请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈