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 du périphérique d’affichage (contexte graphique).
unnamedParam2
hQuery [in] : handle de 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 a la valeur 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 D3D10_DDI_GET_DATA_FLAG.
Valeur de retour
None
Remarques
Le pilote peut utiliser la fonction de rappel pfnSetErrorCb pour définir un code d’erreur.
Une fois que le runtime Microsoft Direct3D a appelé la fonction QueryEnd du pilote d’affichage en mode utilisateur pour faire passer une opération de requête à l’état « émis », le runtime peut appeler QueryGetData pour déterminer si l’opération de requête est toujours à l’état « émis » (DXGI_DDI_ERR_WASSTILLDRAWING) ou si elle est passée à l’état « signalé » (S_OK). Si l’opération de requête est à l’état « signalé », QueryGetData peut retourner les données de requête dans le paramètre pData ; sinon, pData est inchangé. 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 un travail qui réside toujours dans des mémoires tampons de commandes partielles, par défaut, le pilote doit se terminer et envoyer les mémoires tampons de commande partielles. Toutefois, le pilote ne doit pas arrêter 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 Flags . 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 case activée pour 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.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista |
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | d3d10umddi.h (include D3d10umddi.h) |