PFND3D10DDI_QUERYGETDATA funzione di callback (d3d10umddi.h)

La funzione QueryGetData esegue il polling dello stato di un'operazione di query.

Sintassi

PFND3D10DDI_QUERYGETDATA Pfnd3d10ddiQuerygetdata;

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

Parametri

unnamedParam1

hDevice [in]: handle per il dispositivo di visualizzazione (contesto grafico).

unnamedParam2

hQuery [in]: handle per l'oggetto query di cui eseguire il polling.

unnamedParam3

pData [out]: puntatore a un'area di memoria che riceve i dati da un'operazione di query. Il driver di visualizzazione in modalità utente può impostare pData su NULL e impostare il parametro DataSize su zero. Se pData è NULL, QueryGetData può indicare lo stato dell'operazione di query, ad esempio se l'operazione di query è stata completata.

DataSize

[out] Dimensioni, in byte, dei dati della query a cui punta il parametro pData . Il driver di visualizzazione in modalità utente può impostare DataSize su zero e impostare pData su NULL. Se DataSize è zero, QueryGetData può indicare lo stato dell'operazione di query, ad esempio tramite codici restituiti.

unnamedParam5

Flag [in]: flag D3D10_DDI_GET_DATA_FLAG.

Valore restituito

nessuno

Osservazioni

Il driver può usare la funzione di callback pfnSetErrorCb per impostare un codice di errore.

Dopo che il runtime di Microsoft Direct3D chiama la funzione QueryEnd del driver di visualizzazione in modalità utente per eseguire la transizione di un'operazione di query allo stato "rilasciato", il runtime può chiamare QueryGetData per determinare se l'operazione di query è ancora nello stato "rilasciato" (DXGI_DDI_ERR_WASSTILLDRAWING) o ha eseguito la transizione allo stato "segnalato" (S_OK). Se l'operazione di query si trova nello stato "segnalato", QueryGetData può restituire i dati della query nel parametro pData ; in caso contrario, pData è invariato. Il driver può chiamare pfnSetErrorCb per indicare lo stato dell'operazione di query.

Il runtime non può chiamare QueryGetData con un predicato creato con D3D10_QUERY_MISCFLAG_PREDICATEHINT tramite una chiamata alla funzione SetPredication .

Se un'operazione di query gestisce il lavoro che risiede ancora in buffer di comandi parziali, per impostazione predefinita, il driver deve terminare e inviare i buffer dei comandi parziali. Tuttavia, il driver non deve terminare e inviare i buffer se il runtime ha specificato il flag D3D10_DDI_GET_DATA_DO_NOT_FLUSH nel parametro Flags . Se il runtime ha passato il flag D3D10_DDI_GET_DATA_DO_NOT_FLUSH nel parametro Flags e se l'operazione di query gestisce il lavoro che risiede ancora in buffer di comandi parziali, il driver può chiamare pfnSetErrorCb per impostare solo il codice di errore DXGI_DDI_ERR_WASSTILLDRAWING.

Quando il runtime chiama QueryGetData per verificare il completamento della query, il driver può passare DXGI_DDI_ERR_WASSTILLDRAWING in una chiamata a pfnSetErrorCb per indicare che la query non è ancora stata completata. Il driver può anche passare D3DDDIERR_DEVICEREMOVED in una chiamata a pfnSetErrorCb. Il runtime Direct3D determinerà che tutti gli altri errori sono critici.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista
Piattaforma di destinazione Desktop
Intestazione d3d10umddi.h (include D3d10umddi.h)

Vedi anche

CheckCounter

D3D10DDI_DEVICEFUNCS

QueryEnd

SetPredication

pfnSetErrorCb