Compartir a través de


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)

Consulte también

CheckCounter

D3D10DDI_DEVICEFUNCS

QueryEnd

SetPredication

pfnSetErrorCb