Fonction PerfCreateInstance (perflib.h)
Crée une instance du jeu de compteurs spécifié. Les fournisseurs utilisent cette fonction.
Syntaxe
PPERF_COUNTERSET_INSTANCE PerfCreateInstance(
[in] HANDLE ProviderHandle,
[in] LPCGUID CounterSetGuid,
[in] PCWSTR Name,
[in] ULONG Id
);
Paramètres
[in] ProviderHandle
Handle du fournisseur. Utilisez la variable handle que l’outil CTRPP a générée pour vous. Pour connaître le nom de la variable, consultez l’attribut symbol de l’élément provider .
Windows Vista : La fonction PerfStartProvider retourne le handle.
[in] CounterSetGuid
GUID qui identifie de manière unique le jeu de compteurs dont vous souhaitez créer un instance. Il s’agit du même GUID spécifié dans l’attribut guid de l’élément counterSet . Utilisez la variable GUID que l’outil CTRPP a générée pour vous. Pour obtenir le nom de la variable, consultez l’attribut symbol de l’élément counterSet .
Windows Vista : La variable GUID n’est pas disponible.
[in] Name
Chaîne Unicode terminée par null qui contient un nom unique pour cette instance.
[in] Id
Identificateur unique pour cette instance du jeu de compteurs. L’identificateur peut être un numéro de série que vous incrémentez pour chaque nouvelle instance.
Valeur retournée
Structure PERF_COUNTERSET_INSTANCE qui contient le instance du jeu de compteurs ou NULL si PERFLIB n’a pas pu créer le instance. Mettre en cache ce pointeur à utiliser dans les appels ultérieurs au lieu d’appeler PerfQueryInstance pour récupérer le pointeur vers le instance.
Cette fonction retourne la valeur NULL si une erreur s’est produite. Pour déterminer l’erreur qui s’est produite, appelez GetLastError.
Remarques
Le fournisseur détermine quand il crée un instance. Si les données du compteur sont plus statiques, le fournisseur peut créer une instance au moment de l’initialisation. Par exemple, le nombre de processeurs sur un ordinateur étant considéré comme statique, un fournisseur qui fournit des données de compteur pour les processeurs peut créer une instance pour chaque processeur sur l’ordinateur au moment de l’initialisation. Pour les compteurs plus dynamiques, tels que les compteurs de disque ou de processus, les fournisseurs créent les nouvelles instances en réponse à l’ajout d’un nouveau périphérique USB ou à la création d’un nouveau processus.
Lorsque le fournisseur appelle cette fonction, PERFLIB alloue de la mémoire locale pour le nouveau instance et génère le bloc instance. PERFLIB supprime la mémoire lorsque le fournisseur appelle la fonction PerfDeleteInstance .
Le instance contient les données brutes du compteur. Les fournisseurs utilisent les trois fonctions suivantes pour mettre à jour les données brutes du compteur :
En règle générale, le fournisseur maintient les données du compteur à jour à tout moment. Le fournisseur peut également implémenter la fonction ControlCallback et utiliser le code de requête PERF_COLLECT_START pour déclencher les mises à jour.Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2008 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | perflib.h |
Bibliothèque | Advapi32.lib |
DLL | Advapi32.dll |