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