PFND3DDDI_CHECKCOUNTER fonction de rappel (d3dumddi.h)

PFND3DDDI_CHECKCOUNTER est appelé par le runtime Direct3D pour récupérer les informations qui décrivent un compteur. Doit être implémenté par le modèle de pilote d’affichage Windows (WDDM) 1.3 et les pilotes d’affichage en mode utilisateur ultérieurs.

Syntaxe

PFND3DDDI_CHECKCOUNTER Pfnd3dddiCheckcounter;

HRESULT Pfnd3dddiCheckcounter(
  HANDLE hDevice,
  D3DDDIQUERYTYPE unnamedParam2,
  D3DDDI_COUNTER_TYPE *unnamedParam3,
  UINT *unnamedParam4,
  LPSTR unnamedParam5,
  UINT *pNameLength,
  LPSTR unnamedParam7,
  UINT *pUnitsLength,
  LPSTR unnamedParam9,
  UINT *pDescriptionLength
)
{...}

Paramètres

hDevice

[in] Handle pour le périphérique d’affichage (contexte graphique).

unnamedParam2

[in] Counter est une valeur de type D3DDDIQUERYTYPE qui identifie l’identificateur de compteur pour lequel les informations sont récupérées.

unnamedParam3

[out] pType est un pointeur vers une variable qui reçoit une valeur d’énumération D3DDDI_COUNTER_TYPE qui identifie le type de données généré par le compteur.

unnamedParam4

pActiveCounters [out] pActiveCounters est un pointeur vers une variable qui reçoit le nombre de compteurs actifs simultanément alloués à la création de l’identificateur de compteur identifié par le paramètre Counter .

unnamedParam5

[out, facultatif] pszName est un pointeur facultatif auquel le pilote retourne une chaîne terminée par NULL qui contient le nom de l’identificateur du compteur.

Peut être NULL, auquel cas l’application n’a pas besoin du nom.

pNameLength

[in, out, facultatif] Pointeur facultatif vers une variable qui reçoit la taille, en octets, de la chaîne terminée par NULL que le paramètre pszName spécifie.

Voici des limitations sur les valeurs des paramètres pNameLength et pszName :

  • pNameLength peut être NULL, auquel cas l’application n’a pas besoin du nom ou de la longueur du nom.
  • Si pszName a la valeur NULL et que pNameLength n’est pas NULL, la valeur d’entrée de pNameLength est ignorée et la longueur de la chaîne (y compris le caractère NULL de fin) doit être retournée via le paramètre pNameLength .
  • Si pszName et pNameLength ne sont pas null, le pilote doit case activée la valeur d’entrée de pNameLength pour s’assurer qu’il y a suffisamment de place dans la mémoire tampon allouée, puis la longueur de la chaîne pszName (y compris le caractère NULL de fin) est passée via le paramètre pNameLength.

unnamedParam7

[out, facultatif] pszUnits est un pointeur facultatif auquel le pilote retourne une chaîne terminée par NULL qui contient le nom des unités mesurées par l’identificateur de compteur.

Peut être NULL, auquel cas l’application n’a pas besoin des informations d’unités. Pour plus d’informations, consultez l’explication du paramètre pUnitsLength .

pUnitsLength

[in, out, facultatif] pUnitsLength est un pointeur facultatif vers une variable qui reçoit la taille, en octets, de la chaîne terminée par NULL que le paramètre pszUnits spécifie.

Voici des limitations sur les valeurs des paramètres pUnitsLength et pszUnits :

  • pUnitsLength peut être NULL, auquel cas l’application n’a pas besoin du nom d’unité ou de la longueur du nom d’unité.
  • Si pszUnits a la valeur NULL et que pUnitsLength n’est pas NULL, la valeur d’entrée de pUnitsLength est ignorée et la longueur de la chaîne (y compris le caractère NULL de fin) doit être retournée via le paramètre pUnitsLength .
  • Si pszUnits et pUnitsLength ne sont pas null, le pilote doit case activée la valeur d’entrée de pUnitsLength pour s’assurer qu’il y a suffisamment de place dans la mémoire tampon allouée, puis la longueur de la chaîne pszUnits (y compris le caractère NULL de fin) est passée via le paramètre pUnitsLength.

unnamedParam9

[out, facultatif] pszDescription est un pointeur facultatif auquel le pilote retourne une chaîne terminée par NULL qui contient la description de ce que l’identificateur de compteur mesure.

Peut être NULL, auquel cas l’application n’a pas besoin des informations de description. Pour plus d’informations, consultez l’explication du paramètre pDescriptionLength .

pDescriptionLength

[in, out, facultatif] pDescriptionLength est un pointeur facultatif vers une variable qui reçoit la taille, en octets, de la chaîne terminée par NULL spécifiée par le paramètre pszDescription .

Voici des limitations sur les valeurs des paramètres pDescriptionLength et pszDescription :

  • pDescriptionLength peut être NULL, auquel cas l’application n’a pas besoin du nom d’unité ou de la longueur du nom d’unité.
  • Si pszDescription a la valeur NULL et que pDescriptionLength n’est pas NULL, la valeur d’entrée de pDescriptionLength est ignorée et la longueur de la chaîne (y compris le caractère NULL de fin) doit être retournée via le paramètre pDescriptionLength .
  • Si pszDescription et pDescriptionLength ne sont pas null, le pilote doit case activée la valeur d’entrée de pDescriptionLength pour s’assurer qu’il y a suffisamment de place dans la mémoire tampon allouée, puis la longueur de la chaîne pszDescription (y compris le caractère NULL de fin) est passée via le paramètre pDescriptionLength.

Valeur retournée

Si cette routine réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT, y compris les éléments suivants :

Code de retour Description
E_INVALIDARG Un compteur dépendant de l’appareil hors limites est demandé, ou une longueur de chaîne n’est pas suffisamment grande pour qu’une mémoire tampon contienne la chaîne entière. Même si toutes les chaînes utilisées dans cette fonction sont basées sur Unicode, elles sont toujours dans les paramètres régionaux anglais et ne sont pas localisées vers d’autres paramètres régionaux.

Remarques

Cette fonction doit se comporter de la même façon que la fonction CheckCounter qui prend en charge Microsoft Direct3D 10 et versions ultérieures.

Les compteurs sont généralement utilisés par les outils qui capturent une image et la rejouent plusieurs fois. La passe qui enregistre des informations de minutage précises est distincte des autres passes. Dans les passes ultérieures, un ensemble différent de compteurs est utilisé à chaque fois. La priorité doit être d’obtenir une corrélation précise des résultats des compteurs pour dessiner des appels, et la surcharge encourue pendant la lecture peut être sacrifiée. Le pilote doit insérer des appels de vidage ou attendre des appels inactifs pour garantir une corrélation précise.

En règle générale, une application ne peut surveiller simultanément qu’un petit nombre de compteurs natifs possibles, qui peuvent se chiffrer en centaines. En outre, le pilote doit indiquer le nombre de compteurs actifs utilisés par la surveillance de chaque ID de compteur pris en charge à partir de l’énumération D3DDDIQUERYTYPE (à la fois les ID de compteur connus et les ID de compteur spécifiques au périphérique). Par exemple, le pilote peut indiquer que la surveillance d’une variable FillRateUtilized nécessite 3 des 4 compteurs actifs simultanés maximum (indiqués par le paramètre pActiveCounters ). L’application peut donc également surveiller un autre ID de compteur, tant que cet ID de compteur nécessite un ou plusieurs compteurs actifs.

Si un ID de compteur peut toujours être surveillé (et qu’il n’interfère pas avec la surveillance d’autres ID de compteur), le nombre de compteurs actifs simultanés requis par l’ID de compteur peut être égal à zéro.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8.1
Serveur minimal pris en charge Windows Server 2012 R2
Plateforme cible Desktop (Expérience utilisateur)
En-tête d3dumddi.h (incluez D3d10umddi.h)

Voir aussi

CheckCounter

D3DDDIQUERYTYPE