Поделиться через


функция обратного вызова PFND3D10DDI_QUERYGETDATA (d3d10umddi.h)

Функция QueryGetData опрашивает состояние операции запроса.

Синтаксис

PFND3D10DDI_QUERYGETDATA Pfnd3d10ddiQuerygetdata;

VOID Pfnd3d10ddiQuerygetdata(
  D3D10DDI_HDEVICE unnamedParam1,
  D3D10DDI_HQUERY unnamedParam2,
  VOID *unnamedParam3,
  UINT DataSize,
  UINT unnamedParam5
)
{...}

Параметры

unnamedParam1

hDevice [in]: дескриптор для устройства отображения (графический контекст).

unnamedParam2

hQuery [in]: дескриптор объекта запроса для опроса.

unnamedParam3

pData [out]: указатель на область памяти, которая получает данные из операции запроса. Драйвер отображения в пользовательском режиме может задать для pData значение NULL и задать для параметра DataSize значение нулю. Если pData имеет значение NULL, QueryGetData может указать состояние операции запроса (например, завершается ли операция запроса).

DataSize

[out] Размер в байтах данных запроса, на которые указывает параметр pData. Драйвер отображения в пользовательском режиме может задать DataSize равным нулю и задать для pData значение NULL. Если DataSize равно нулю, QueryGetData может указать состояние операции запроса (например, с помощью кодов возврата).

unnamedParam5

Флаги [in]: флаги D3D10_DDI_GET_DATA_FLAG.

Возвращаемое значение

Никакой

Замечания

Драйвер может использовать функцию обратного вызова pfnSetErrorCb для задания кода ошибки.

Когда среда выполнения Microsoft Direct3D вызывает функцию queryEnd драйвера в режиме пользователя, чтобы перенести операцию запроса в состояние "выданный", среда выполнения может вызывать QueryGetData, чтобы определить, находится ли операция запроса в состоянии "выдан" (DXGI_DDI_ERR_WASSTILLDRAWING) или перейдет в состояние "сигнальный" (S_OK). Если операция запроса находится в состоянии "сигнальная", QueryGetData может возвращать данные запроса в параметре pData; в противном случае pData не изменяется. Драйвер может вызывать pfnSetErrorCb, чтобы указать состояние операции запроса.

Среда выполнения не может вызывать QueryGetData с предикатом, созданным с D3D10_QUERY_MISCFLAG_PREDICATEHINT с помощью вызова функции SetPredication.

Если операция запроса обрабатывает работу, которая по-прежнему находится в частичных буферах команд, по умолчанию драйвер должен завершить работу и отправить частичные буферы команд. Однако драйвер не должен завершать работу и отправлять буферы, если среда выполнения указала флаг D3D10_DDI_GET_DATA_DO_NOT_FLUSH в параметре Flags. Если среда выполнения передала флаг D3D10_DDI_GET_DATA_DO_NOT_FLUSH в параметре Flags и если операция запроса обрабатывает работу, которая по-прежнему находится в частичных буферах команд, драйвер может вызвать pfnSetErrorCb, чтобы задать только код ошибки DXGI_DDI_ERR_WASSTILLDRAWING.

Когда среда выполнения вызывает QueryGetData для проверки завершения запроса, драйвер может передать DXGI_DDI_ERR_WASSTILLDRAWING в вызове pfnSetErrorCb, чтобы указать, что запрос еще не завершен. Драйвер также может передавать D3DDDIERR_DEVICEREMOVED в вызове pfnSetErrorCb. Среда выполнения Direct3D определяет, что любые другие ошибки критически важны.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows Vista
целевая платформа Настольный
заголовка d3d10umddi.h (include D3d10umddi.h)

См. также

CheckCounter

D3D10DDI_DEVICEFUNCS

QueryEnd

SetPredication

pfnSetErrorCb