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