PFND3D10DDI_QUERYGETDATA función de devolución de llamada (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 pantalla 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 pantalla 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, a través de códigos de retorno).
unnamedParam5
Marcas [in]: D3D10_DDI_GET_DATA_FLAG marcas.
Valor devuelto
None
Observaciones
El controlador puede usar la función de devolución de llamada pfnSetErrorCb para establecer un código de error.
Después de que el tiempo de ejecución de Microsoft Direct3D llame a la función QueryEnd del 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ñalado" (S_OK). Si la operación de consulta está en el estado "señalado", QueryGetData puede devolver los datos de consulta en el parámetro pData ; 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ón SetPredication .
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 | Value |
---|---|
Cliente mínimo compatible | Windows Vista |
Plataforma de destino | Escritorio |
Encabezado | d3d10umddi.h (incluya D3d10umddi.h) |