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


функция обратного вызова 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 флаги.

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

None

Remarks

Драйвер может использовать функцию обратного вызова 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 (включая D3d10umddi.h)

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

CheckCounter

D3D10DDI_DEVICEFUNCS

QueryEnd

SetPredication

pfnSetErrorCb