PdhEnumObjectsA, fonction (pdh.h)

Retourne une liste d’objets disponibles sur l’ordinateur spécifié ou dans le fichier journal spécifié.

Pour utiliser des handles dans des sources de données, utilisez la fonction PdhEnumObjectsH .

Syntaxe

PDH_FUNCTION PdhEnumObjectsA(
  [in]      LPCSTR  szDataSource,
  [in]      LPCSTR  szMachineName,
  [out]     PZZSTR  mszObjectList,
  [in, out] LPDWORD pcchBufferSize,
  [in]      DWORD   dwDetailLevel,
  [in]      BOOL    bRefresh
);

Paramètres

[in] szDataSource

Chaîne terminée par null qui spécifie le nom du fichier journal utilisé pour énumérer les objets de performances. Si la valeur EST NULL, la fonction utilise l’ordinateur spécifié dans

le paramètre szMachineName pour énumérer les noms.

[in] szMachineName

Chaîne terminée par null qui spécifie le nom de l’ordinateur utilisé pour énumérer les objets de performances.

Incluez les barres obliques de début dans le nom de l’ordinateur, par exemple, \computername.

Si le paramètre szDataSource a la valeur NULL, vous pouvez définir szMachineName sur NULL pour spécifier l’ordinateur local.

[out] mszObjectList

Mémoire tampon allouée à l’appelant qui reçoit la liste des noms d’objets. Chaque nom d’objet de cette liste est terminé par un caractère null . La liste se termine par deux caractères null-terminateur. Définissez sur NULL si le paramètre pcchBufferLength est égal à zéro.

[in, out] pcchBufferSize

Taille de la mémoire tampon mszObjectList , dans les TCHAR. Si zéro lors de 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 compter sur la taille retournée pour réallouer la mémoire tampon.

Windows XP : Ajoutez-en un à la taille de mémoire tampon requise.

[in] dwDetailLevel

Niveau de détail des éléments de performances à retourner. Tous les éléments qui sont du niveau de détail spécifié ou moins seront retournés (les niveaux sont répertoriés dans un ordre croissant). Ce paramètre peut prendre les valeurs suivantes.

Valeur Signification
PERF_DETAIL_NOVICE
Niveau de détail de l’utilisateur novice.
PERF_DETAIL_ADVANCED
Niveau de détail avancé de l’utilisateur.
PERF_DETAIL_EXPERT
Niveau de détail de l’utilisateur expert.
PERF_DETAIL_WIZARD
Niveau de détail du concepteur de système.

[in] bRefresh

Indique si la liste d’objets mis en cache doit être automatiquement actualisée. Spécifiez l’une des valeurs suivantes.

Si vous appelez cette fonction deux fois, une fois pour obtenir la taille de la liste et une deuxième fois pour obtenir la liste réelle, définissez ce paramètre sur TRUE lors du premier appel et FALSE sur le deuxième appel. Si les deux appels ont la valeur TRUE, le deuxième appel peut également retourner PDH_MORE_DATA, car les données d’objet peuvent avoir changé entre les appels.

Valeur Signification
TRUE
Le cache d’objets est automatiquement actualisé avant que les objets ne soient retournés.
FALSE
N’actualisez pas automatiquement le cache.

Valeur retournée

Si la fonction réussit, elle retourne ERROR_SUCCESS.

Si la fonction échoue, la valeur renvoyée 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 mszObjectList est trop petite pour contenir la liste des objets. Cette valeur de retour est attendue si pcchBufferLength 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 compter sur la taille retournée pour réallouer la mémoire tampon.
PDH_CSTATUS_NO_MACHINE
L’ordinateur spécifié est hors connexion ou indisponible.
PDH_CSTATUS_NO_OBJECT
L’objet spécifié est introuvable.
PDH_INVALID_ARGUMENT
Un paramètre n'est pas valide. 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 mszObjectList sur NULL et pcchBufferLength sur 0) et la deuxième fois pour obtenir les données.

Notes

L’en-tête pdh.h définit PdhEnumObjects comme un 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. Le mélange 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

PdhEnumObjectItems

PdhEnumObjectsH