PdhEnumObjectItemsHW, fonction (pdh.h)
Retourne le compteur et instance noms de l’objet spécifié qui existent sur l’ordinateur spécifié ou dans le fichier journal spécifié.
Cette fonction est identique à la fonction PdhEnumObjectItems , sauf qu’elle prend en charge l’utilisation de handles pour les sources de données.
Syntaxe
PDH_FUNCTION PdhEnumObjectItemsHW(
[in] PDH_HLOG hDataSource,
[in] LPCWSTR szMachineName,
[in] LPCWSTR szObjectName,
[out] PZZWSTR mszCounterList,
[in, out] LPDWORD pcchCounterListLength,
[out] PZZWSTR mszInstanceList,
[in, out] LPDWORD pcchInstanceListLength,
[in] DWORD dwDetailLevel,
[in] DWORD dwFlags
);
Paramètres
[in] hDataSource
Gérez vers une source de données retournée par la fonction PdhBindInputDataSource .
[in] szMachineName
Chaîne terminée par null qui spécifie le nom de l’ordinateur qui contient le compteur et instance noms que vous souhaitez énumérer.
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.
[in] szObjectName
Chaîne terminée par null qui spécifie le nom de l’objet dont le compteur et les noms instance que vous souhaitez énumérer.
[out] mszCounterList
Mémoire tampon allouée à l’appelant qui reçoit une liste de noms de compteurs terminés par null fournies par l’objet spécifié. La liste contient des noms de compteurs uniques. La liste se termine par deux caractères NULL . Définissez sur NULL si le paramètre pcchCounterListLength est égal à zéro.
[in, out] pcchCounterListLength
Taille de la mémoire tampon mszCounterList , en TCHAR. Si zéro sur l’entrée et que l’objet existe, 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.
[out] mszInstanceList
Mémoire tampon allouée à l’appelant qui reçoit une liste de noms de instance terminés par null fournies par l’objet spécifié. La liste contient des noms de instance uniques. La liste se termine par deux caractères NULL . Définissez sur NULL si le paramètre pcchInstanceListLength est égal à zéro.
[in, out] pcchInstanceListLength
Taille de la mémoire tampon mszInstanceList , en TCHAR. Si zéro sur l’entrée et que l’objet existe, 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.
Si l’objet spécifié ne prend pas en charge les instances de variables, 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 correspond à 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 prendre les valeurs suivantes.
[in] dwFlags
Ce paramètre doit être égal à zéro.
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 |
---|---|
|
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 à 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 vous appuyer 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. |
|
L’objet spécifié est introuvable 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 PdhEnumObjectItemsH interroge toujours la liste des objets de performance définis par le dernier appel à PdhEnumObjectsH ou PdhEnumObjectItemsH. Pour actualiser la liste des objets de performance, appelez PdhEnumObjectsH avec la valeur de l’indicateurbRefresh TRUE avant d’appeler à nouveau PdhEnumObjectItemsH.
L’ordre des noms de instance et de compteurs est indéterminé.
Notes
L’en-tête pdh.h définit PdhEnumObjectItemsH 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 |