Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
L’outil CTRPP est un préprocesseur qui analyse et valide le manifeste de votre fournisseur V2. L’outil génère .rc des ressources avec les chaînes nécessaires aux consommateurs de votre fournisseur, et il génère un en-tête avec du .h code que vous utilisez pour fournir vos données de compteur. Vous devez exécuter l’outil CTRPP pendant la construction de votre fournisseur. Vous devez utiliser le code généré comme point de départ lors du développement de votre fournisseur au lieu d’essayer de générer ce code vous-même.
ctrpp -o codeFile -rc rcFile [-legacy] [-MemoryRoutines] [-NotificationCallback] [-prefix prefix] [-ch symFile] [-backcompat] inputFile
Les arguments
| Choix | Descriptif |
|---|---|
| inputFile |
Obligatoire: Spécifie le nom du .man fichier (manifeste XML) qui définit vos compteurs. |
| -ocodeFichier |
Obligatoire: Spécifie le nom du fichier de .h code à générer par CTRPP. Ce fichier contiendra des fonctions d’assistance en ligne C/C++ qui simplifient l’initialisation et la désinitialisation de votre fournisseur. |
| -rcrcFichier |
Obligatoire: Spécifie le nom du (fichier de .rc ressources) à générer par CTRPP. Ce fichier contiendra la table de chaînes du fournisseur. |
| -chsymFile | Spécifie le nom du fichier de symboles facultatif .h à générer par CTRPP. Ce fichier contiendra des symboles C/C++ pour les noms et les GUID de chaque compteur dans le fournisseur. |
| -préfixe préfixe | Spécifie le préfixe à utiliser pour les variables et les fonctions définies dans le fichier d’en-tête généré. |
| -NotificationRappel | Modifie la signature par défaut de la fonction CounterInitialize pour inclure des paramètres permettant de spécifier le nom des fonctions de rappel ControlCallback, AllocateMemory et FreeMemory . Cet argument a le même effet que l’inclusion de l’attribut callback dans l’élément provider . |
| -migreroutputFile | Au lieu de générer .h des .rc fichiers, met à niveau le manifeste inputFile vers la dernière version et l’enregistre dans outputFile. Ce commutateur ne peut pas être utilisé avec d’autres commutateurs. Utilisation : CTRPP -migrate NewFile.man OldFile.man |
| -Rétrocompatibilité |
Obsolescent: La prise en charge des fournisseurs en mode noyau a été ajoutée dans Windows 7. Par défaut, le code généré par CTRPP pour les fournisseurs en mode noyau sera incompatible avec les versions antérieures de Windows (le pilote ne se chargera pas en raison d’API manquantes Pcw*** ). Configuré -BackCompat pour activer la compatibilité avec les versions antérieures de Windows. Le pilote chargera dynamiquement les API nécessaires et le code généré désactivera silencieusement le fournisseur si les API ne sont pas disponibles. |
| -Routines de mémoire |
Obsolescent: Lorsqu’il est utilisé avec le -Legacy commutateur, inclut des modèles pour les routines de mémoire dans le code généré. Sinon, cet argument a le même effet que le -NotificationCallback commutateur. |
| -Héritage |
Obsolescent: Génère des *.hfichiers , , *.c*.rcet *_r.h des fichiers à l’aide des modèles de code Windows Vista (génère PerfAutoInitialize et PerfAutoCleanup au lieu de CounterInitialize et CounterCleanup). Ce commutateur peut être utilisé avec -MemoryRoutines et -NotificationCallback , mais ne peut pas être utilisé avec d’autres commutateurs. N’utilisez pas les commutateurs -o ou -rc avec ce commutateur. Les fichiers générés seront nommés en fonction du nom du manifeste et seront écrits dans le répertoire qui contenait le manifeste. Utilisation : CTRPP -legacy OldFile.man |
Remarques
L’outil CTRPP génère un .h fichier de code, un .rc fichier de ressources et, éventuellement, un fichier de .h symboles.
Utilisation du fichier de ressources généré
L’outil CTRPP génère un .rc fichier de ressources qui contient les chaînes localisables nécessaires aux consommateurs des compteurs du fournisseur.
Important
Les ressources de ce fichier doivent être incluses dans le fichier binaire de votre fournisseur et le chemin d’accès complet au fichier binaire du fournisseur doit être enregistré lors de l’installation du manifeste de votre fournisseur. Les consommateurs qui ne sont pas en mesure de localiser et de charger les ressources ne pourront pas utiliser les compteurs de votre fournisseur.
Les ressources de chaîne doivent être gérées comme suit :
- Le développeur modifie le fichier manifeste () du fournisseur pour
.mandéfinir l’attributapplicationIdentitydu fournisseur sur le nom d’un fichier binaire du fournisseur (.DLL, .SYS ou .EXE) qui contiendra les ressources de chaîne du fournisseur et sera installé dans le cadre du composant du fournisseur. - L’outil CTRPP lit le manifeste du fournisseur et génère un
.rcfichier. - L’outil RC (resource compiler) compile les données du fichier généré par
.rcCTRPP pour générer un.resfichier contenant les ressources binaires. Cela peut être fait soit en compilant directement le fichier généré par.rcCTRPP OU en compilant un autre.rcfichier qui inclut le fichier généré par.rcCTRPP via une#includedirective. - L’éditeur de liens intègre les données du fichier généré par
.resRC dans le fichier binaire du fournisseur. - Lors de l’installation, le fichier binaire du fournisseur est copié sur le système de l’utilisateur et le manifeste du fournisseur est enregistré à l’aide de l’outil lodctr. L’outil lodctr convertit l’attribut
applicationIdentitydu manifeste du fournisseur en un chemin d’accès complet et enregistre le chemin d’accès complet au binaire du fournisseur dans le registre.- Si le fichier binaire du fournisseur se trouve dans le même répertoire que le manifeste, utilisez :
lodctr.exe /m:"C:\full\manifest\path\manifest.man". lodctr combinera le chemin d’accès au manifeste spécifié avec l’attribut du manifeste pour former le chemin d’accèsapplicationIdentitycomplet. - Sinon, utilisez
lodctr.exe /m:"C:\full\manifest\path\manifest.man" "c:\full\binary\path". lodctr combinera le chemin binaire spécifié avec l’attribut duapplicationIdentitymanifeste pour former le chemin complet. - À des fins de diagnostic, vous pouvez inspecter le chemin d’accès complet enregistré en vérifiant la valeur de la
ApplicationIdentitycléHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\_V2Providers\{<ProviderGuid>}de registre. - Si le fichier binaire utilise MUI pour la localisation, assurez-vous de copier le fichier MUI avec le fichier binaire.
- Si le fichier binaire du fournisseur se trouve dans le même répertoire que le manifeste, utilisez :
- Lors de la collecte de compteurs, le consommateur utilise le chemin d’accès complet enregistré au fichier binaire du fournisseur pour localiser et charger les chaînes nécessaires à partir des ressources du fichier binaire du fournisseur.
Utilisation du fichier de code généré dans un fournisseur en mode utilisateur
L’outil CTRPP génère un fichier de .h code C/C++. Si l’attribut du manifeste du providerType fournisseur est défini sur userMode, le fichier de code généré contient les définitions suivantes qui sont utiles pour coder un fournisseur en mode utilisateur :
- n fonction d’initialisation du fournisseur nommée préfixeCounterInitialize.
- Une fonction de nettoyage du fournisseur nommée préfixeCounterCleanup.
- Variable globale du fournisseur qui stocke le descripteur du fournisseur ouvert par la fonction CounterInitialize du préfixe. Le nom de la variable est la valeur de l’attribut
symbolde l’élémentproviderdans le manifeste. Cette variable doit être utilisée dans les appels à ,PerfDeleteInstanceet àPerfCreateInstanced’autres API pour contrôler les données de votre fournisseur. - Pour chaque ensemble de compteurs, une variable GUID de compteur globale avec le GUID de compteur. Le nom de la variable est la valeur de l’attribut de l’élément
counterSetsymbolplus le suffixe « GUID », par exempleMyCounterSetGUID. Cette variable doit être utilisée dans les appels à ,PerfDeleteInstanceet àPerfCreateInstanced’autres API pour contrôler les données de votre fournisseur. - Pour chaque compteur, une macro de compteur avec la valeur du
idcompteur. Le nom de la macro est la valeur de l’attribut de l’élémentcountersymbol. Cette macro doit être utilisée dans les appels àPerfSetCounterRefValue,PerfSetULongLongCounterValueet à d’autres API pour définir les données de votre fournisseur.
Dans les noms de fonctions, prefix fait référence à la valeur du paramètre de ligne de -prefix commande. Si le paramètre n’est -prefix pas utilisé, les fonctions seront nommées CounterInitialize et CounterCleanup.
Utilisation du fichier de code généré dans un fournisseur en mode noyau
L’outil CTRPP génère un fichier de .h code C/C++. Si l’attribut du manifeste du providerType fournisseur est défini sur kernelMode, le fichier de code généré contient les définitions suivantes qui sont utiles pour coder les compteurs d’un fournisseur en mode noyau :
- Une fonction d’initialisation de compteur nommée préfixeRegister Counterset. Cette fonction remplit une structure RegInfo puis appelle PcwRegister, en plaçant le handle d’enregistrement de compteur résultant dans la variable globale Counterset .
- Une fonction de nettoyage de compteur nommée préfixeDésinscrireCompteur. Cette fonction appelle PcwUnregister sur le handle d’enregistrement du compteur dans la variable globale Counterset .
- Une fonction de création d’instance nommée préfixeCreateCounterset. Cette fonction remplit un tableau de structures PcwData , puis appelle PcwCreateInstance à l’aide du handle d’enregistrement counterset dans la variable Counterset globale.
- Une fonction de nettoyage d’instance nommée préfixeClose Counterset. Cette fonction appelle PcwCloseInstance.
- Une fonction de rapport d’instance nommée préfixeAjouterun compteur à utiliser à partir de la fonction de rappel de compteur. Cette fonction remplit un tableau de structures PcwData , puis appelle PcwAddInstance.
- Kit de développement logiciel (SDK) Windows 20H1 et versions ultérieures : Une fonction d’initialisation RegInfo nommée préfixeInitRegistrationInformationCounterset à utiliser dans des scénarios avancés. Cette fonction remplit une structure RegInfo . Cette fonction peut être utilisée dans les cas où le préfixegénéré RegisterCounterset ne répond pas à vos besoins, par exemple lorsque vous souhaitez personnaliser les valeurs dans la structure RegInfo ou lorsque vous souhaitez stocker le handle renvoyé dans une autre variable.
Dans les noms de fonctions, prefix fait référence à la valeur du paramètre de ligne de -prefix commande. Si le paramètre n’est -prefix pas utilisé, les fonctions n’auront pas de préfixe.
Remarque
La fonction AddCounterset (Add Counterset) générée est utilisée lorsque vous disposez d’un rappel de counterset. Les fonctions de préfixeCreateCounterset et de préfixeCloseCounterset générées sont utilisées lorsque vous n’avez pas de rappel de counterset.
Utilisation du fichier de symboles généré
Si le paramètre -ch est spécifié sur la ligne de commande, l’outil CTRPP génère un .h fichier de symboles. Ce fichier contient les symboles C/C++ pour les noms et les GUID de chaque compteur dans le fournisseur. Les symboles peuvent être utilisés lors de l’écriture de programmes codés en dur pour consommer les données de ce compteur à l’aide des fonctions PerfLib V2 Consumer Functions.
Spécifications
| Besoin | Valeur |
|---|---|
| Client minimum pris en charge | Windows Vista [applications de bureau uniquement] |
| Serveur minimum pris en charge | Windows Server 2008 [applications de bureau uniquement] |