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) |