Partager via


PdhLookupPerfNameByIndexA, fonction (pdh.h)

Retourne le nom de l’objet de performance ou le nom du compteur correspondant à l’index spécifié.

Syntaxe

PDH_FUNCTION PdhLookupPerfNameByIndexA(
  [in]      LPCSTR  szMachineName,
  [in]      DWORD   dwNameIndex,
  [out]     LPSTR   szNameBuffer,
  [in, out] LPDWORD pcchNameBufferSize
);

Paramètres

[in] szMachineName

Chaîne terminée par null qui spécifie le nom de l’ordinateur où se trouve l’objet ou le compteur de performance spécifié. Le nom de l’ordinateur peut être spécifié par le nom DNS ou l’adresse IP. Si la valeur est NULL, la fonction utilise l’ordinateur local.

[in] dwNameIndex

Index de l’objet ou du compteur de performance.

[out] szNameBuffer

Mémoire tampon allouée à l’appelant qui reçoit le nom terminé par null de l’objet ou du compteur de performance. Définissez sur NULL si pcchNameBufferSize a la valeur zéro.

[in, out] pcchNameBufferSize

Taille de la mémoire tampon szNameBuffer , en TCHAR. Si la valeur est zéro à l’entrée, la fonction retourne PDH_MORE_DATA et définit ce paramètre sur la taille de mémoire tampon requise. Si la mémoire tampon est supérieure à la taille requise, la fonction définit ce paramètre sur la taille réelle de la mémoire tampon utilisée. Si la taille spécifiée sur l’entrée est supérieure à zéro, mais inférieure à la taille requise, vous ne devez pas vous appuyer sur la taille retournée pour réallouer la mémoire tampon.

Valeur retournée

Si la fonction réussit, elle retourne ERROR_SUCCESS.

Si la fonction échoue, la valeur de retour est un code d’erreur système ou un code d’erreur PDH. Voici les valeurs possibles.

Code de retour Description
PDH_MORE_DATA
La mémoire tampon szNameBuffer n’est pas assez grande pour contenir le nom du compteur. Cette valeur de retour est attendue si pcchNameBufferSize est égal à zéro en entrée. Si la taille spécifiée sur l’entrée est supérieure à zéro, mais inférieure à la taille requise, vous ne devez pas vous appuyer sur la taille retournée pour réallouer la mémoire tampon.
PDH_INVALID_ARGUMENT
Un paramètre n’est pas valide ou est mal mis en forme. Par exemple, sur certaines versions, vous pouvez recevoir cette erreur si la taille spécifiée sur l’entrée est supérieure à zéro, mais inférieure à la taille requise.

Remarques

Vous devez appeler cette fonction deux fois, la première fois pour obtenir la taille de mémoire tampon requise ( définissez szNameBuffer sur NULL et pcchNameBufferSize sur 0) et la deuxième fois pour obtenir les données.

Windows XP : Vous devez spécifier une mémoire tampon et une taille de mémoire tampon. La fonction définit pcchNameBufferSize sur la taille requise ou la taille de la mémoire tampon utilisée. Si la mémoire tampon est trop petite, la fonction retourne PDH_INSUFFICIENT_BUFFER au lieu de PDH_MORE_DATA. La taille de chaîne maximale en octets est PDH_MAX_COUNTER_NAME * sizeof(TCHAR).

La valeur d’index que vous spécifiez doit correspondre à l’une des valeurs d’index associées aux objets ou compteurs chargés sur l’ordinateur. Les paires valeur index/nom sont stockées dans la valeur de Registre Compteurs à l’emplacement de Registre suivant.

HKEY_LOCAL_MACHINE
   \SOFTWARE
      \Microsoft
         \Windows NT
            \CurrentVersion
               \Perflib
                  Last Counter = highest counter index
                  Last Help = highest help index
                  \009
                     Counters = 2 System 4 Memory...
                     Help = 3 The System Object Type...
                  \supported language, other than English
                     Counters = ...
                     Help = ...

Notes

L’en-tête pdh.h définit PdhLookupPerfNameByIndex comme alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. La combinaison de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête pdh.h
Bibliothèque Pdh.lib
DLL Pdh.dll

Voir aussi

PdhLookupPerfIndexByName