CTRPP

A CTRPP eszköz egy előfeldolgozó, amely elemzi és ellenőrzi a V2-szolgáltató jegyzékfájlját. Az eszköz erőforrásokat hoz létre .rc a szolgáltató fogyasztói számára szükséges sztringekkel, és létrehoz egy .h fejlécet a számláló adatainak megadásához használt kóddal. A CTRPP eszközt a szolgáltató buildje során kell futtatnia. A szolgáltató fejlesztése során a generált kódot kell kiindulópontként használnia, ahelyett, hogy saját maga próbálná létrehozni ezt a kódot.

ctrpp -o codeFile -rc rcFile [-legacy] [-MemoryRoutines] [-NotificationCallback] [-prefix prefix] [-ch symFile] [-backcompat] inputFile

Érvek

Lehetőség Leírás
bemeneti fájl Szükséges: A számlálókat meghatározó (XML-jegyzékfájl) nevét adja meg .man .
-okódfájl Szükséges: Megadja a .h CTRPP által generálandó kódfájl nevét. Ez a fájl C/C++ beágyazott segítő funkciókat tartalmaz, amelyek leegyszerűsítik a szolgáltató inicializálását és inicializálásának visszavonását.
-rcrc fájl Szükséges: Megadja a CTRPP által generálandó (erőforrásfájl) nevét .rc . Ez a fájl tartalmazza a szolgáltató sztringtábláját.
-chszimbolikus fájl Megadja a CTRPP által generálandó opcionális .h szimbólumfájl nevét. Ez a fájl C/C++ szimbólumokat fog tartalmazni a szolgáltató egyes számlálóhalmazainak nevéhez és GUID azonosítóihoz.
-előtagelőtag Megadja a létrehozott fejlécfájlban definiált változókhoz és függvényekhez használandó előtagot.
-Értesítés visszahívása Módosítja a CounterInitialize függvény alapértelmezett aláírását, hogy tartalmazza a ControlCallback,AllocateMemory és FreeMemory visszahívási függvények nevének megadására szolgáló paramétereket. Ennek az argumentumnak ugyanaz a hatása, mint az attribútumnak callback a provider elemben.
-kimeneti fájláttelepítése A fájlok létrehozása .h helyett .rc frissíti a jegyzékfájlt a legújabb verzióra, és menti az outputFile fájlba. Ez a kapcsoló nem használható más kapcsolókkal. Használat: CTRPP -migrate NewFile.man OldFile.man
-Vissza-Compat Elavult: A kernel módú szolgáltatók támogatása a Windows 7 rendszerben került hozzáadásra. Alapértelmezés szerint a CTRPP által a kernel módú szolgáltatók számára generált kód nem lesz kompatibilis a Windows korábbi verzióival (az illesztőprogram hiányzó Pcw*** API-k miatt nem töltődik be). Állítsa be -BackCompat a Windows korábbi verzióival való kompatibilitás engedélyezését. Az illesztőprogram dinamikusan betölti a szükséges API-kat, és a generált kód csendesen letiltja a szolgáltatót, ha az API-k nem érhetők el.
-Memória rutinok Elavult: A kapcsolóval együtt használva -Legacy a generált kódban memóriarutinok sablonjait tartalmazza. Ellenkező esetben ennek az argumentumnak ugyanaz a hatása, mint a kapcsolónak -NotificationCallback .
-Örökség Elavult: Létrehozza *.ha , *.c, és *.rc*_r.h fájlokat a Windows Vista kódsablonjainak használatával (a CounterInitialize és a CounterCleanup helyett létrehozza a PerfAutoInitialize és a PerfAutoCleanup funkciót). Ez a kapcsoló használható a -MemoryRoutines és a -NotificationCallback kapcsolókkal, de nem használható más kapcsolókkal. Ne használja az -o vagy -rc kapcsolókat ezzel a kapcsolóval. A létrehozott fájlok a jegyzékfájl neve alapján lesznek elnevezve, és a jegyzékfájlt tartalmazó könyvtárba lesznek írva. Használat: CTRPP -legacy OldFile.man

Megjegyzések

A CTRPP eszköz létrehoz egy .h kódfájlt, egy .rc erőforrásfájlt, és opcionálisan létrehoz egy .h szimbólumfájlt.

A létrehozott erőforrásfájl használata

A CTRPP eszköz létrehoz egy .rc erőforrásfájlt, amely tartalmazza a szolgáltató számlálóhalmazainak felhasználói számára szükséges honosítható karakterláncokat.

Fontos

A fájlból származó erőforrásokat bele kell foglalni a szolgáltató bináris fájljába, és a szolgáltató bináris fájljának teljes elérési útját regisztrálni kell a szolgáltató jegyzékfájljának telepítése során. Azok a fogyasztók, akik nem tudják megtalálni és betölteni az erőforrásokat, nem tudják használni a szolgáltató számlálóit.

A sztringerőforrásokat a következőképpen kell kezelni:

  • A fejlesztő szerkeszti a szolgáltatói jegyzékfájlt (.man), hogy a applicationIdentity szolgáltató attribútumát egy olyan szolgáltató bináris (.DLL, .SYS vagy .EXE) nevére állítsa be, amely tartalmazza a szolgáltató sztringerőforrásait, és a szolgáltatói összetevő részeként lesz telepítve.
  • A CTRPP eszköz beolvassa a szolgáltatói jegyzékfájlt, és létrehoz egy .rc fájlt.
  • Az RC (erőforrás-fordító) eszköz összeállítja a CTRPP által generált .rc fájl adatait, hogy létrehozza a .res bináris erőforrásokat tartalmazó fájlt. Ezt megteheti a CTRPP által generált .rc fájl közvetlen fordításával VAGY egy másik .rc fájl fordításával, amely tartalmazza a CTRPP által generált .rc fájlt egy #include direktíván keresztül.
  • A linker beágyazza az RC által generált .res fájl adatait a szolgáltató bináris fájljába.
  • A telepítés során a szolgáltató bináris fájlja a felhasználó rendszerére másolódik, és a szolgáltatói jegyzékfájl regisztrálása a lodctr eszközzel történik. A lodctr eszköz a szolgáltatói jegyzékfájl attribútumát teljes elérési úttá alakítja applicationIdentity , és rögzíti a szolgáltató bináris fájljának teljes elérési útját a beállításjegyzékben.
    • Ha a szolgáltató bináris fájlja ugyanabban a könyvtárban található, mint a jegyzékfájl, használja a következőt: lodctr.exe /m:"C:\full\manifest\path\manifest.man". A lodctr a megadott jegyzék elérési útját a jegyzékfájl applicationIdentity attribútumával kombinálja a teljes elérési út kialakításához.
    • Ellenkező esetben használja a lodctr.exe /m:"C:\full\manifest\path\manifest.man" "c:\full\binary\path". A lodctr a megadott bináris elérési utat a jegyzékfájl applicationIdentity attribútumával kombinálja a teljes elérési út kialakításához.
    • Diagnosztikai célokra a rögzített teljes elérési utat a rendszerleíró kulcs HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\_V2Providers\{<ProviderGuid>}értékének ellenőrzésével ApplicationIdentity ellenőrizheti.
    • Ha a bináris fájl MUI-t használ a honosításhoz, mindenképpen másolja a MUI-fájlt a bináris fájllal együtt.
  • A számlálókészlet gyűjtése során a fogyasztó a szolgáltató bináris fájljának rögzített teljes elérési útját használja a szükséges karakterláncok megkereséséhez és betöltéséhez a szolgáltató bináris fájljának erőforrásaiból.

A generált kódfájl használata felhasználói módú szolgáltatóban

A CTRPP eszköz létrehoz egy .h C/C++ kódfájlt. Ha a szolgáltatói jegyzékfájl providerType attribútuma a következőre userModevan állítva, a létrehozott kódfájl a következő definíciókat fogja tartalmazni, amelyek hasznosak a felhasználói módú szolgáltatók kódolásához:

  • n CounterInitialize előtag nevű szolgáltatóinicializálási függvény.
  • Egy CounterCleanup előtag nevű szolgáltatói tisztítási függvény.
  • Globális szolgáltatói változó, amely a függvény előtagja által megnyitott szolgáltatói leírót tárolja. A változó neve a jegyzékfájlban szereplő provider elem attribútumának értékesymbol. Ezt a változót a , PerfDeleteInstanceés más API-k hívásaiban PerfCreateInstancekell használni a szolgáltató adatainak vezérléséhez.
  • Minden számlálóhoz egy globális számlálóhalmazGUID változó a számlálóhalmaz GUID azonosítójával. A változó neve az counterSet elem symbol attribútumának értéke plusz a "GUID" utótag, pl. MyCounterSetGUID. Ezt a változót a , PerfDeleteInstanceés más API-k hívásaiban PerfCreateInstancekell használni a szolgáltató adatainak vezérléséhez.
  • Minden számlálóhoz egy számlálómakró a számláló id értékével. A makró neve az counter elem symbol attribútumának értéke. Ezt a makrót a , PerfSetULongLongCounterValueés más API-k hívásaiban PerfSetCounterRefValuekell használni a szolgáltató adatainak beállításához.

A függvénynevekben az előtag a -prefix parancssori paraméter értékére utal. Ha a paramétert -prefix nem használja, a függvények neve CounterInitialize és .CounterCleanup

A generált kódfájl használata kernel módú szolgáltatóban

A CTRPP eszköz létrehoz egy .h C/C++ kódfájlt. Ha a szolgáltatói jegyzékfájl providerType attribútuma értékre kernelModevan állítva, a létrehozott kódfájl a következő definíciókat fogja tartalmazni, amelyek hasznosak a kernelmódú szolgáltató számlálóhalmazainak kódolásához:

  • Egy számlálókészlet-inicializálási függvény, amelynek neve Számlálókészletregisztrálása előtag. Ez a függvény kitölti a RegInfo struktúrát, majd meghívja a PcwRegistert, és az eredményül kapott számláló regisztrációs leírót a globális Counterset változóba helyezi.
  • A számlálókészlet regisztrációjának törlése nevű számlálóhalmaz előtag-tisztítási függvénye. Ez a függvény meghívja a PcwUnregister függvényt a globális Counterset változó számláló regisztrációs leíróján.
  • Egy példány-létrehozási függvény előtagCounterset létrehozása. Ez a függvény kitölti a PcwData struktúrák tömbjét, majd meghívja a PcwCreateInstance-t a globális Counterset változó számlálóregisztrációs leírójával.
  • Egy példánytisztító függvény nevű előtagSzámlálókészlet bezárása. Ez a függvény meghívja a PcwCloseInstance-t.
  • Egy előtagnevű példányjelentési függvényCounterset hozzáadása a számláló visszahívási függvényéből való használatra. Ez a függvény kitölti a PcwData struktúrák tömbjét, majd meghívja a PcwAddInstance-t.
  • Windows SDK 20H1 és újabb: Egy RegInfo inicializálási függvény InitRegistrationInformationcountersetnevű előtag speciális forgatókönyvekben való használatra. Ez a függvény kitölti a RegInfo struktúrát. Ez a funkció olyan esetekben használható, amikor a generált Regiszterszámláló előtag nem felel meg az Ön igényeinek, pl. ha testre szeretné szabni az értékeket a RegInfo struktúrában, vagy ha a visszaadott leírót egy másik változóban szeretné tárolni.

A függvénynevekben az előtag a -prefix parancssori paraméter értékére utal. Ha a paramétert -prefix nem használja, a függvényeknek nem lesz előtagja.

Megjegyzés:

A generált előtagAddCounterset függvény akkor használatos, ha számlálóhalmaz visszahívása van. A létrehozott előtagCreateCounterset és a Close Countersetelőtag függvények akkor használatosak, ha nincs számlálókészlet-visszahívás.

A generált szimbólumfájl használata

Ha a -ch paraméter meg van adva a parancssorban, a CTRPP eszköz létrehoz egy .h szimbólumfájlt. Ez a fájl tartalmazza a szolgáltató egyes számlálóhalmazainak nevéhez és GUID azonosítóihoz tartozó C/C++ szimbólumokat. A szimbólumok olyan programok írásakor használhatók, amelyek a PerfLib V2 fogyasztói függvények segítségével a számlálóhalmazból származó adatok felhasználására vannak kódolva.

Követelmények

Követelmény Érték
Minimálisan támogatott ügyfél Windows Vista [csak asztali alkalmazások]
Minimálisan támogatott kiszolgáló Windows Server 2008 [csak asztali alkalmazások]