Création d’autres entrées du Registre

Comme décrit dans Création de la clé de performances de l’application, un composant qui fournit des données de compteur de performances doit avoir une clé de performances sous la clé Services , et la clé de performances doit contenir des valeurs Bibliothèque, Ouvrir, Collecter et Fermer . Dans certains cas, votre composant peut avoir besoin de configurer des valeurs de Registre supplémentaires.

Métadonnées

MetadataGlobalet MetadataCostly sont des requêtes de métadonnées uniquement générées par Windows 10 20H1 et versions ultérieures. Ils permettent à un utilisateur d’obtenir des métadonnées (informations sur les objets et sur les compteurs) sans effectuer une collecte de données potentiellement coûteuse. La requête de métadonnées uniquement est censée retourner les mêmes résultats que la requête correspondante Global ou, Costly sauf que NumInstances doit être définie sur PERF_METADATA_MULTIPLE_INSTANCES (pour un objet multi-instance) ou PERF_METADATA_NO_INSTANCES (pour un objet instance unique) et le résultat doit omettre tous les PERF_INSTANCE_DEFINITION blocs.

Si votre DLL de performances prend en charge MetadataGlobal et MetadataCostly les types de requête, elle doit l’indiquer en ajoutant une REG_DWORD valeur Collect Supports Metadata à sa Performance clé et en définissant la valeur sur 1. Si Collect Supports Metadata est absent ou défini sur 0, une requête de métadonnées uniquement revient à une Global requête ou.Costly

HKEY_LOCAL_MACHINE
   \SYSTEM
      \CurrentControlSet
         \Services
            \application-name
               \Performance
                  Collect Supports Metadata = 1

Liaison

La fonction OpenPerformanceData de la DLL de performances prend un argument de chaîne comme entrée. Pour fournir une chaîne d’entrée à votre fonction ouverte, incluez une clé de liaison sous votre clé Services . La clé de liaison contient une valeur Export . Définissez les données de valeur pour Exporter sur la chaîne d’entrée que vous souhaitez passer à votre fonction ouverte. Le type de données Export est REG_MULTI_SZ.

Si Export n’est pas défini (Export est facultatif), le système transmet NULL à votre fonction OpenPerformanceData .

En règle générale, si plusieurs applications partagent la même DLL de performances, chaque application inclut une clé de liaison et une valeur d’exportation pour fournir un contexte quant à l’application qui appelle la DLL.

Voici les entrées de Registre :

HKEY_LOCAL_MACHINE
   \SYSTEM
      \CurrentControlSet
         \Services
            \application-name-1
               \Linkage
                  Export = app-1 context strings
               \Performance
                  Library = perfctrs.dll
            \application-name-2
               \Linkage
                  Export = app-2 context strings
               \Performance
                  Library = perfctrs.dll

Délai d'expiration

Par défaut, les fonctions OpenPerformanceData et CollectPerformanceData de la DLL de performances doivent retourner dans un délai de 10 000 millisecondes. Si ce n’est pas le cas, le système n’utilise pas les données que la DLL retourne. L’application peut augmenter ou diminuer la valeur du délai d’expiration en spécifiant une valeur de Registre Ouvrir le délai d’expiration ou Collecter le délai d’expiration sous sa clé de performances , comme illustré dans l’exemple suivant.

HKEY_LOCAL_MACHINE
   \SYSTEM
      \CurrentControlSet
         \Services
            \application-name
               \Performance
                  Open Timeout = Timeout value for your open function, in milliseconds
                  Collect Timeout = Timeout value for your collect function, in milliseconds

Appareils DOS

Pour obtenir les données de performances de certaines applications (celles qui retournent des compteurs à l’aide de la fonction DeviceIoControl ), il est nécessaire d’utiliser la fonction CreateFile pour ouvrir l’appareil associé à l’application. Dans ce cas, le nom spécifié dans CreateFile doit également être installé dans le nœud Appareils DOS du Registre, comme illustré ici :

HKEY_LOCAL_MACHINE
   \SYSTEM
      \CurrentControlSet
         \Control
            \Session Manager
               \DOS Devices