Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Nástroj CTRPP je předprocesor, který analyzuje a ověřuje manifest pro vašeho poskytovatele V2. Nástroj generuje .rc prostředky s řetězci potřebnými pro spotřebitele vašeho poskytovatele a generuje hlavičku .h s kódem, který používáte k poskytnutí dat čítače. Nástroj CTRPP byste měli spustit během sestavování vašeho poskytovatele. Vygenerovaný kód byste měli použít jako výchozí bod při vývoji poskytovatele místo toho, abyste se pokoušeli tento kód vygenerovat sami.
ctrpp -o codeFile -rc rcFile [-legacy] [-MemoryRoutines] [-NotificationCallback] [-prefix prefix] [-ch symFile] [-backcompat] inputFile
Argumenty
| Možnost | Popis |
|---|---|
| Soubor vstupu |
Požadovaný: Určuje název .man souboru (XML manifest), který definuje čítače. |
| -okódový soubor |
Požadovaný: Určuje název .h souboru kódu, který má být generován pomocí CTRPP. Tento soubor bude obsahovat vložené pomocné funkce jazyka C/C++, které zjednodušují inicializaci a zrušení inicializace poskytovatele. |
| -rcrcSoubor |
Požadovaný: Určuje název .rc (zdrojového souboru), který má být generován pomocí CTRPP. Tento soubor bude obsahovat tabulku řetězců poskytovatele. |
| -chsymFile | Určuje název volitelného .h souboru symbolů, který má být generován pomocí CTRPP. Tento soubor bude obsahovat symboly C/C++ pro názvy a identifikátory GUID každé sady čítačů ve poskytovateli. |
| -prefixprefix prefix | Určuje předponu, která se má použít pro proměnné a funkce definované ve vygenerovaném souboru hlaviček. |
| -Zpětné volání oznámení | Změní výchozí signaturu funkce CounterInitialize tak, aby zahrnovala parametry pro určení názvu funkcí zpětného volání ControlCallback, AllocateMemory a FreeMemory . Tento argument má stejný účinek jako zahrnutí atributu callback do elementu provider . |
| -migrovatvýstupní soubor | Namísto generování .h souborů a .rc upgraduje manifest inputFile na nejnovější verzi a uloží jej do outputFile. Tento přepínač nelze použít s jinými spínači. Použití: CTRPP -migrate NewFile.man OldFile.man |
| -Zpětný přehled |
Zavrhovaný: V systému Windows 7 byla přidána podpora pro poskytovatele režimu jádra. Ve výchozím nastavení bude kód generovaný protokolem CTRPP pro poskytovatele režimu jádra nekompatibilní s dřívějšími verzemi systému Windows (ovladač se nepodaří načíst z důvodu chybějících Pcw*** rozhraní API). Nastavte -BackCompat tak, aby byla povolena kompatibilita se staršími verzemi systému Windows. Ovladač dynamicky načte potřebná rozhraní API a vygenerovaný kód tiše deaktivuje poskytovatele, pokud rozhraní API nejsou k dispozici. |
| -Paměťové rutiny |
Zavrhovaný: Při použití s přepínačem -Legacy obsahuje do vygenerovaného kódu šablony pro paměťové rutiny. V opačném případě má tento argument stejný účinek jako přepínač -NotificationCallback . |
| -Dědictví |
Zavrhovaný: Generuje *.hsoubory , *.c, *.rca *_r.h pomocí šablon kódu systému Windows Vista (generuje PerfAutoInitialize a PerfAutoCleanup namísto CounterInitialize a CounterCleanup). Tento přepínač lze použít s -MemoryRoutines a -NotificationCallback , ale nelze jej použít s žádnými jinými přepínači. S tímto přepínačem nepoužívejte přepínače -o nebo -rc . Vygenerované soubory budou pojmenovány na základě názvu manifestu a budou zapsány do adresáře, který obsahoval manifest. Použití: CTRPP -legacy OldFile.man |
Poznámky
Nástroj CTRPP vygeneruje .h soubor kódu, .rc soubor prostředků a volitelně vygeneruje soubor symbolů .h .
Použití vygenerovaného souboru prostředků
Nástroj CTRPP vygeneruje zdrojový .rc soubor, který obsahuje lokalizovatelné řetězce, které potřebují uživatelé protisad poskytovatele.
Důležité
Prostředky z tohoto souboru musí být zahrnuty do binárního souboru vašeho poskytovatele a úplná cesta k binárnímu souboru poskytovatele musí být zaregistrována během instalace manifestu vašeho poskytovatele. Příjemci, kteří nejsou schopni najít a načíst zdroje, nebudou moci používat protisady vašeho poskytovatele.
S prostředky řetězce by se mělo zacházet následovně:
- Vývojář upraví soubor manifestu (
.man) zprostředkovatele tak, aby nastavilapplicationIdentityatribut zprostředkovatele na název binárního souboru poskytovatele (.DLL, .SYS nebo .EXE), který bude obsahovat řetězcové prostředky pro poskytovatele a bude nainstalován jako součást komponenty poskytovatele. - Nástroj CTRPP načte manifest poskytovatele a vygeneruje
.rcsoubor. - Nástroj RC (kompilátor prostředků) zkompiluje data ze souboru generovaného
.rcCTRPP a vygeneruje.ressoubor obsahující binární prostředky. To lze provést buď přímou kompilací souboru vygenerovaného.rcCTRPP, NEBO kompilací jiného.rcsouboru, který obsahuje soubor vygenerovaný.rcCTRPP pomocí#includedirektivy. - Linker vloží data ze souboru generovaného
.resRC do binárního souboru poskytovatele. - Během instalace se binární soubor zprostředkovatele zkopíruje do systému uživatele a manifest poskytovatele se zaregistruje pomocí nástroje lodctr. Nástroj lodctr převede
applicationIdentityatribut manifestu zprostředkovatele na úplnou cestu a zaznamená úplnou cestu k binárnímu souboru poskytovatele do registru.- Pokud je binární soubor zprostředkovatele ve stejném adresáři jako manifest, použijte:
lodctr.exe /m:"C:\full\manifest\path\manifest.man". LODCTR zkombinuje zadanou cestu manifestu s atributemapplicationIdentitymanifestu a vytvoří úplnou cestu. - V opačném případě použijte
lodctr.exe /m:"C:\full\manifest\path\manifest.man" "c:\full\binary\path". LODCTR zkombinuje zadanou binární cestu s atributemapplicationIdentitymanifestu a vytvoří úplnou cestu. - Pro diagnostické účely můžete zaznamenanou úplnou cestu zkontrolovat kontrolou
ApplicationIdentityhodnoty klíčeHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\_V2Providers\{<ProviderGuid>}registru . - Pokud binární soubor používá k lokalizaci soubor MUI, nezapomeňte zkopírovat soubor MUI spolu s binárním souborem.
- Pokud je binární soubor zprostředkovatele ve stejném adresáři jako manifest, použijte:
- Během shromažďování protisady příjemce používá zaznamenanou úplnou cestu k binárnímu souboru poskytovatele k vyhledání a načtení potřebných řetězců z prostředků binárního souboru poskytovatele.
Použití vygenerovaného souboru kódu ve zprostředkovateli uživatelského režimu
Nástroj CTRPP vygeneruje .h soubor kódu C/C++. Pokud je atribut manifestu providerType poskytovatele nastaven na , userModevygenerovaný soubor kódu bude obsahovat následující definice, které jsou užitečné při kódování poskytovatele uživatelského režimu:
- n inicializační funkce poskytovatele s názvem prefixCounterInitialize.
- Funkce vyčištění poskytovatele s názvem prefixCounterCleanup.
- Globální proměnná poskytovatele , která ukládá popisovač zprostředkovatele otevřený funkcí předponyCounterInitialize . Název proměnné je hodnota atributu
symbolelementuproviderv manifestu. Tato proměnná by měla být použita ve voláních rozhraníPerfDeleteInstanceAPI aPerfCreateInstancedalších rozhraní API pro řízení dat vašeho poskytovatele. - Pro každou sadu čítačů je k dispozici globální proměnná GUID sady čítačů s identifikátorem GUID sady čítačů. Název proměnné je hodnota atributu
counterSetsymbolelementu plus přípona "GUID", např.MyCounterSetGUID. Tato proměnná by měla být použita ve voláních rozhraníPerfDeleteInstanceAPI aPerfCreateInstancedalších rozhraní API pro řízení dat vašeho poskytovatele. - Pro každý čítač makro čítače s hodnotou čítače
id. Název makra je hodnota atributucountersymbolprvku. Toto makro by mělo být použito ve voláních rozhraníPerfSetULongLongCounterValueAPI proPerfSetCounterRefValuenastavení dat vašeho poskytovatele.
V názvech funkcí odkazuje předpona na hodnotu parametru příkazového řádku -prefix . Pokud parametr -prefix není použit, funkce budou pojmenovány CounterInitialize a CounterCleanup.
Použití vygenerovaného souboru kódu ve zprostředkovateli režimu jádra
Nástroj CTRPP vygeneruje .h soubor kódu C/C++. Pokud je atribut manifestu providerType poskytovatele nastaven na , kernelModevygenerovaný soubor kódu bude obsahovat následující definice, které jsou užitečné při kódování protisad poskytovatele v režimu jádra:
- Inicializační funkce countersetu pojmenovaná prefixRegisterCounterset. Tato funkce vyplní strukturu RegInfo a poté vyvolá PcwRegister, čímž umístí výsledný popisovač registrace countersetu do globální proměnné Counterset .
- Funkce vyčištění countersetu s názvem prefixUnregisterCounterset. Tato funkce vyvolá PcwUnregister na popisovači registrace protisady v globální proměnné Counterset .
- Funkce pro vytváření instance s názvem prefixCreate Counterset. Tato funkce vyplní pole struktur PcwData a poté vyvolá PcwCreateInstance pomocí popisovače registrace countersetu v globální proměnné Counterset .
- Funkce vyčištění instance s názvem prefixClose Counterset. Tato funkce vyvolá PcwCloseInstance.
- Funkce hlášení instancí s názvem prefixAddCounterset , která se má použít z funkce zpětného volání countersetu. Tato funkce vyplní pole struktur PcwData a poté vyvolá PcwAddInstance.
- Windows SDK 20H1 a novější: Inicializační funkce RegInfo s názvem prefixInitRegistrationInformationCounterset pro použití v pokročilých scénářích. Tato funkce vyplní strukturu RegInfo . Tuto funkci lze použít v případech, kdy vygenerovaný prefixRegisterCounterset nevyhovuje vašim potřebám, např. když chcete upravit hodnoty ve struktuře RegInfo nebo když chcete vrácený handle uložit do jiné proměnné.
V názvech funkcí odkazuje předpona na hodnotu parametru příkazového řádku -prefix . Pokud parametr -prefix není použit, funkce nebudou mít žádnou předponu.
Poznámka:
Funkce vygenerované předponyAddCounterset se používá, když máte zpětné volání countersetu. Funkce vygenerované předponyCreateCounterset a prefixClose Counterset se používají v případě, že nemáte zpětné volání countersetu.
Použití vygenerovaného souboru symbolů
Pokud je na příkazovém řádku zadán parametr -ch , nástroj CTRPP vygeneruje soubor symbolů .h . Tento soubor obsahuje symboly C/C++ pro názvy a identifikátory GUID každé sady čítačů ve zprostředkovateli. Symboly lze použít při psaní programů, které jsou pevně zakódovány tak, aby využívaly data z této čítače pomocí funkcí PerfLib V2 Consumer.
Požadavky
| Požadavek | Hodnota |
|---|---|
| Minimální podporovaný klient | Windows Vista [pouze desktopové aplikace] |
| Minimální podporovaný server | Windows Server 2008 [jenom desktopové aplikace] |