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

要检索其状态的适配器上的状态项的类型。 有关每种适配器状态类型的详细信息,请参阅 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 nullptroutputBuffer (或 inputStateDetail 提供 ,其中需要输入状态详细信息缓冲区) 。

注解

有关每个适配器状态类型以及使用的输入和输出的详细信息,请参阅 DXCoreAdapterState 。 此函数在填充 outputBuffer 缓冲区之前将其归零。

请参阅

IDXCoreAdapterDXCore 参考使用 DXCore 枚举适配器