Compartilhar via


PFND3D10DDI_QUERYGETDATA função de retorno de chamada (d3d10umddi.h)

A função QueryGetData pesquisa o estado de uma operação de consulta.

Sintaxe

PFND3D10DDI_QUERYGETDATA Pfnd3d10ddiQuerygetdata;

void Pfnd3d10ddiQuerygetdata(
  D3D10DDI_HDEVICE unnamedParam1,
  D3D10DDI_HQUERY unnamedParam2,
  VOID *unnamedParam3,
  UINT DataSize,
  UINT unnamedParam5
)
{...}

Parâmetros

unnamedParam1

hDevice [in]: um identificador para o dispositivo de exibição (contexto gráfico).

unnamedParam2

hQuery [in]: um identificador para o objeto de consulta a ser sondado.

unnamedParam3

pData [out]: um ponteiro para uma região de memória que recebe os dados de uma operação de consulta. O driver de exibição do modo de usuário pode definir pData como NULL e definir o parâmetro DataSize como zero. Se pData for NULL, QueryGetData poderá indicar o estado da operação de consulta (por exemplo, se a operação de consulta foi concluída).

DataSize

[out] O tamanho, em bytes, dos dados de consulta para os quais o parâmetro pData aponta. O driver de exibição do modo de usuário pode definir DataSize como zero e definir pData como NULL. Se DataSize for zero, QueryGetData poderá indicar o estado da operação de consulta (por exemplo, por meio de códigos de retorno).

unnamedParam5

Sinalizadores [in]: sinalizadores de D3D10_DDI_GET_DATA_FLAG.

Retornar valor

Nenhum

Comentários

O driver pode usar a função de retorno de chamada pfnSetErrorCb para definir um código de erro.

Depois que o runtime do Microsoft Direct3D chama a função QueryEnd do driver de exibição do modo de usuário para fazer a transição de uma operação de consulta para o estado "emitido", o runtime pode chamar QueryGetData para determinar se a operação de consulta ainda está no estado "emitido" (DXGI_DDI_ERR_WASSTILLDRAWING) ou fez a transição para o estado "sinalizado" (S_OK). Se a operação de consulta estiver no estado "sinalizado", QueryGetData poderá retornar os dados de consulta no parâmetro pData ; caso contrário, pData não será alterado. O driver pode chamar pfnSetErrorCb para indicar o estado da operação de consulta.

O runtime não pode chamar QueryGetData com um predicado criado com D3D10_QUERY_MISCFLAG_PREDICATEHINT por meio de uma chamada para a função SetPredication .

Se uma operação de consulta manipular o trabalho que ainda reside em buffers de comando parciais, por padrão, o driver deverá terminar e enviar os buffers de comando parciais. No entanto, o driver não deve terminar e enviar os buffers se o runtime especificou o sinalizador D3D10_DDI_GET_DATA_DO_NOT_FLUSH no parâmetro Flags . Se o runtime passou o sinalizador D3D10_DDI_GET_DATA_DO_NOT_FLUSH no parâmetro Flags e se a operação de consulta manipular o trabalho que ainda reside em buffers de comando parciais, o driver poderá chamar pfnSetErrorCb para definir apenas o código de erro DXGI_DDI_ERR_WASSTILLDRAWING.

Quando o runtime chama QueryGetData para marcar para conclusão da consulta, o driver pode passar DXGI_DDI_ERR_WASSTILLDRAWING em uma chamada para pfnSetErrorCb para indicar que a consulta ainda não foi concluída. O driver também pode passar D3DDDIERR_DEVICEREMOVED em uma chamada para pfnSetErrorCb. O runtime do Direct3D determinará que quaisquer outros erros são críticos.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista
Plataforma de Destino Área de Trabalho
Cabeçalho d3d10umddi.h (inclua D3d10umddi.h)

Confira também

CheckCounter

D3D10DDI_DEVICEFUNCS

QueryEnd

SetPredication

pfnSetErrorCb