Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Функция 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) |