PdhEnumObjectItemsA, fonction (pdh.h)
Retourne le compteur et les noms d’instance de l’objet spécifiés qui existent sur l’ordinateur spécifié ou dans le fichier journal spécifié.
Pour utiliser des handles vers des sources de données, utilisez la fonction PdhEnumObjectItemsH.
Syntaxe
PDH_FUNCTION PdhEnumObjectItemsA(
[in] LPCSTR szDataSource,
[in] LPCSTR szMachineName,
[in] LPCSTR szObjectName,
[out] PZZSTR mszCounterList,
[in, out] LPDWORD pcchCounterListLength,
[out] PZZSTR mszInstanceList,
[in, out] LPDWORD pcchInstanceListLength,
[in] DWORD dwDetailLevel,
[in] DWORD dwFlags
);
Paramètres
[in] szDataSource
chaîne null-terminated qui spécifie le nom du fichier journal utilisé pour énumérer les noms de compteur et d’instance. Si NULL, la fonction utilise l’ordinateur spécifié dans
le paramètre szMachineName pour énumérer les noms.
[in] szMachineName
chaîne null-terminated qui spécifie le nom de l’ordinateur qui contient le compteur et les noms d’instance que vous souhaitez énumérer.
Incluez les barres obliques principales dans le nom de l’ordinateur, par exemple, \computername.
Si le paramètre szDataSource
[in] szObjectName
chaîne null-terminated qui spécifie le nom de l’objet dont les noms de compteur et d’instance que vous souhaitez énumérer.
[out] mszCounterList
Mémoire tampon allouée par l’appelant qui reçoit une liste d'noms de compteurs null-terminated fournis par l’objet spécifié. La liste contient des noms de compteurs uniques. La liste est arrêtée par deux caractères NULL. Défini sur NULL si le paramètre pcchCounterListLength est égal à zéro.
[in, out] pcchCounterListLength
Taille de la mémoire tampon mszCounterList
[out] mszInstanceList
Mémoire tampon allouée par l’appelant qui reçoit une liste d'noms d’instance null-terminated fournis par l’objet spécifié. La liste contient des noms d’instances uniques. La liste est arrêtée par deux caractères NULL. Défini sur NULL si pcchInstanceListLength est égal à zéro.
[in, out] pcchInstanceListLength
Taille de la mémoire tampon mszInstanceList
Si l’objet spécifié ne prend pas en charge les instances de variable, la valeur retournée est égale à zéro. Si l’objet spécifié prend en charge les instances de variables, mais n’a actuellement aucune instance, la valeur retournée est 2, qui est la taille d’une chaîne de liste MULTI_SZ vide.
[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 inférieur sont retournés (les niveaux sont répertoriés dans l’ordre croissant). Ce paramètre peut être l’une des valeurs suivantes.
[in] dwFlags
Ce paramètre doit être égal à zéro.
Valeur de retour
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.
Retourner le code | Description |
---|---|
|
L’une des mémoires tampons est trop petite pour contenir la liste des noms. Cette valeur de retour est attendue si pcchCounterListLength ou pcchInstanceListLength est égal à zéro lors de l’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. |
|
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. |
|
Impossible d’allouer de la mémoire pour prendre en charge cette fonction. |
|
L’ordinateur spécifié est hors connexion ou indisponible. |
|
Impossible de trouver l’objet spécifié sur l’ordinateur spécifié ou dans le fichier journal spécifié. |
Remarques
Vous devez appeler cette fonction deux fois, la première fois pour obtenir la taille de mémoire tampon requise (définissez les mémoires tampons sur NULL et les tailles sur 0) et la deuxième fois pour obtenir les données.
Les appels consécutifs à cette fonction retournent des listes identiques de compteurs et d’instances, car PdhEnumObjectItems interroge toujours la liste des objets de performances définis par le dernier appel à PdhEnumObjects ou PdhEnumObjectItems. Pour actualiser la liste des objets de performances, appelez PdhEnumObjects avec une valeur d’indicateur bRefresh de TRUE avant d’appeler PdhEnumObjectItems.
L’ordre des noms d’instance et de compteur n’est pas déterminé.
Exemples
Pour obtenir un exemple, consultez énumération des objets de processus.
Note
L’en-tête pdh.h définit PdhEnumObjectItems 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. 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.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows XP [applications de bureau uniquement] |
serveur minimum pris en charge | Windows Server 2003 [applications de bureau uniquement] |
plateforme cible | Windows |
d’en-tête | pdh.h |
bibliothèque | Pdh.lib |
DLL | Pdh.dll |