PFND3D10DDI_QUERYGETDATA fonction de rappel (d3d10umddi.h)
La fonction QueryGetData interroge l’état d’une opération de requête.
Syntaxe
PFND3D10DDI_QUERYGETDATA Pfnd3d10ddiQuerygetdata;
void Pfnd3d10ddiQuerygetdata(
D3D10DDI_HDEVICE unnamedParam1,
D3D10DDI_HQUERY unnamedParam2,
VOID *unnamedParam3,
UINT DataSize,
UINT unnamedParam5
)
{...}
Paramètres
unnamedParam1
hDevice [in] : handle vers l’appareil d’affichage (contexte graphique).
unnamedParam2
hQuery [in] : handle vers l’objet de requête à interroger.
unnamedParam3
pData [out] : pointeur vers une région de mémoire qui reçoit les données d’une opération de requête. Le pilote d’affichage en mode utilisateur peut définir pData sur NULL et définir le paramètre DataSize sur zéro. Si pData est NULL, QueryGetData peut indiquer l’état de l’opération de requête (par exemple, si l’opération de requête est terminée).
DataSize
[out] Taille, en octets, des données de requête vers laquelle pointe le paramètre pData. Le pilote d’affichage en mode utilisateur peut définir DataSize sur zéro et définir pData sur NULL. Si DataSize est égal à zéro, QueryGetData peut indiquer l’état de l’opération de requête (par exemple, par le biais de codes de retour).
unnamedParam5
indicateurs [in] : indicateurs de D3D10_DDI_GET_DATA_FLAG.
Valeur de retour
Aucun
Remarques
Le pilote peut utiliser la fonction de rappel pfnSetErrorCb pour définir un code d’erreur.
Une fois que le runtime Microsoft Direct3D appelle la fonction QueryEnd du pilote d’affichage en mode utilisateur pour passer à l’état « émis », le runtime peut appeler QueryGetData pour déterminer si l’opération de requête est toujours dans l’état « émis » (DXGI_DDI_ERR_WASSTILLDRAWING) ou a passé à l’état « signalé » (S_OK). Si l’opération de requête est dans l’état « signalé », QueryGetData pouvez retourner les données de requête dans le paramètre pData ; sinon, pData n’est pas modifiée. Le pilote peut appeler pfnSetErrorCb pour indiquer l’état de l’opération de requête.
Le runtime ne peut pas appeler QueryGetData avec un prédicat créé avec D3D10_QUERY_MISCFLAG_PREDICATEHINT via un appel à la fonction SetPredication.
Si une opération de requête gère le travail qui réside toujours dans des mémoires tampons de commande partielles, par défaut, le pilote doit se terminer et envoyer les mémoires tampons de commande partielles. Toutefois, le pilote ne doit pas se terminer et envoyer les mémoires tampons si le runtime a spécifié l’indicateur D3D10_DDI_GET_DATA_DO_NOT_FLUSH dans le paramètre indicateurs. Si le runtime a passé l’indicateur D3D10_DDI_GET_DATA_DO_NOT_FLUSH dans le paramètre Flags et si l’opération de requête gère le travail qui réside toujours dans des mémoires tampons de commande partielles, le pilote peut appeler pfnSetErrorCb pour définir uniquement le code d’erreur DXGI_DDI_ERR_WASSTILLDRAWING.
Lorsque le runtime appelle QueryGetData pour vérifier l’achèvement de la requête, le pilote peut passer DXGI_DDI_ERR_WASSTILLDRAWING dans un appel à pfnSetErrorCb pour indiquer que la requête n’est pas encore terminée. Le pilote peut également passer D3DDDIERR_DEVICEREMOVED dans un appel à pfnSetErrorCb. Le runtime Direct3D détermine que toutes les autres erreurs sont critiques.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows Vista |
plateforme cible | Bureau |
d’en-tête | d3d10umddi.h (include D3d10umddi.h) |