función de devolución de llamada PFND3D10DDI_QUERYGETDATA (d3d10umddi.h)
La función QueryGetData sondea el estado de una operación de consulta.
Sintaxis
PFND3D10DDI_QUERYGETDATA Pfnd3d10ddiQuerygetdata;
void Pfnd3d10ddiQuerygetdata(
D3D10DDI_HDEVICE unnamedParam1,
D3D10DDI_HQUERY unnamedParam2,
VOID *unnamedParam3,
UINT DataSize,
UINT unnamedParam5
)
{...}
Parámetros
unnamedParam1
hDevice [in]: Identificador del dispositivo de visualización (contexto de gráficos).
unnamedParam2
hQuery [in]: Identificador del objeto de consulta que se va a sondear.
unnamedParam3
pData [out]: puntero a una región de memoria que recibe los datos de una operación de consulta. El controlador de visualización en modo de usuario puede establecer pData en NULL y establecer el parámetro DataSize en cero. Si pData es NULL, QueryGetData puede indicar el estado de la operación de consulta (por ejemplo, si la operación de consulta ha finalizado).
DataSize
[out] Tamaño, en bytes, de los datos de consulta a los que apunta el parámetro pData. El controlador de visualización en modo de usuario puede establecer DataSize en cero y establecer pData en NULL. Si dataSize es cero, queryGetData puede indicar el estado de la operación de consulta (por ejemplo, mediante códigos de retorno).
unnamedParam5
Marcas [in]: marcas de D3D10_DDI_GET_DATA_FLAG.
Valor devuelto
Ninguno
Observaciones
El controlador puede usar el pfnSetErrorCb función de devolución de llamada para establecer un código de error.
Una vez que el tiempo de ejecución de Microsoft Direct3D llama a la función queryEnddel controlador de visualización en modo de usuario para realizar la transición de una operación de consulta al estado "emitido", el tiempo de ejecución puede llamar a QueryGetData para determinar si la operación de consulta sigue en estado "emitido" (DXGI_DDI_ERR_WASSTILLDRAWING) o ha pasado al estado "señalizado" (S_OK). Si la operación de consulta está en estado "señalizado", QueryGetData puede devolver los datos de consulta en el parámetro pData de; De lo contrario, pData no cambia. El controlador puede llamar a pfnSetErrorCb para indicar el estado de la operación de consulta.
El tiempo de ejecución no puede llamar a QueryGetData con un predicado creado con D3D10_QUERY_MISCFLAG_PREDICATEHINT a través de una llamada a la funciónSetPredication de.
Si una operación de consulta controla el trabajo que todavía reside en búferes de comandos parciales, de forma predeterminada, el controlador debe finalizar y enviar los búferes de comandos parciales. Sin embargo, el controlador no debe finalizar y enviar los búferes si el tiempo de ejecución especificó la marca D3D10_DDI_GET_DATA_DO_NOT_FLUSH en el parámetro Flags. Si el tiempo de ejecución pasó la marca D3D10_DDI_GET_DATA_DO_NOT_FLUSH en el parámetro Flags y si la operación de consulta controla el trabajo que todavía reside en búferes de comandos parciales, el controlador puede llamar a pfnSetErrorCb para establecer solo el código de error DXGI_DDI_ERR_WASSTILLDRAWING.
Cuando el tiempo de ejecución llama a QueryGetData para comprobar la finalización de la consulta, el controlador puede pasar DXGI_DDI_ERR_WASSTILLDRAWING en una llamada a pfnSetErrorCb para indicar que la consulta aún no ha finalizado. El controlador también puede pasar D3DDDIERR_DEVICEREMOVED en una llamada a pfnSetErrorCb. El tiempo de ejecución de Direct3D determinará que cualquier otro error es crítico.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows Vista |
de la plataforma de destino de | Escritorio |
encabezado de | d3d10umddi.h (incluya D3d10umddi.h) |