Метод IDXCoreAdapter::QueryState

Извлекает текущее состояние указанного элемента в адаптере. Перед вызовом QueryState для типа свойства вызовите IsQueryStateSupported , чтобы убедиться, что для этого адаптера и операционной системы доступен запрос типа состояния.

Синтаксис

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);

Параметры

Состояние

Тип: 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 Тип состояния, указанный в state , не распознается данной операционной системой (ОС). Вызовите IsQueryStateSupported , чтобы убедиться, что для этого адаптера и операционной системы доступен запрос типа состояния.
DXGI_ERROR_UNSUPPORTED Тип состояния, указанный в состоянии , не поддерживается адаптером. Вызовите IsQueryStateSupported , чтобы убедиться, что для этого адаптера и операционной системы доступен запрос типа состояния.
E_INVALIDARG Недостаточный размер буфера предоставляется для outputBuffer (или для inputStateDetails , где требуется буфер сведений о входном состоянии).
E_POINTER nullptr был предоставлен для outputBuffer (или для inputStateDetails, где требуется буфер сведений о входном состоянии).

Комментарии

Дополнительные сведения о каждом типе состояния адаптера и используемых входных и выходных данных см. в разделе DXCoreAdapterState . Эта функция обнуляет буфер outputBuffer перед его заполнением.

См. также раздел

IDXCoreAdapter, DXCore Reference, Using DXCore to enumerate adapters