Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az alkalmazások és a DLL-ek rendszerállapot-jegyzék használatával azonosítják a rendszerállapot-szolgáltatókat és a szolgáltatók által írt eseményeket. A jegyzék egy XML-fájl, amely a szolgáltatót azonosító elemeket tartalmazza. A konvenció az , hogy a .man kiterjesztést használja a jegyzékhez. A jegyzéknek meg kell felelnie az XSD eseményjegyzékének. A sémával kapcsolatos részletekért lásd EventManifest séma.
A rendszerállapot-szolgáltató bármely olyan alkalmazás vagy DLL, amely meghívja az EventWriteEx, EventWriteStringvagy EventWriteTransfer függvényeket, hogy eseményeket írjon egy Eseménykövetési (ETW) nyomkövetési munkamenetbe vagy eseménynapló-csatornába. Az alkalmazások meghatározhatnak egyetlen rendszerállapot-szolgáltatót, amely lefedi az általa írt összes eseményt, vagy meghatározhat egy szolgáltatót az alkalmazáshoz és egy szolgáltatót az egyes DLL-ekhez. Az alkalmazás által a jegyzékben definiált szolgáltatók száma kizárólag attól függ, hogy az alkalmazás hogyan szeretné rendszerezni az általa írt eseményeket.
Az egyes DLL-ek szolgáltatójának megadásának előnye, hogy ezután engedélyezheti és letilthatja az egyes szolgáltatókat, így az általuk létrehozott eseményeket. Ez az előny csak akkor érvényes, ha a szolgáltatót egy ETW nyomkövetési munkamenet aktiválja. Az eseménynapló-csatornát meghatározó események mindig erre a csatornára lesznek írva.
A jegyzéknek azonosítania kell a szolgáltatót és az általa írt eseményeket, de a többi metaadat, például csatornák, szintek és kulcsszavak nem kötelezőek; attól függ, hogy ön határozza-e meg az opcionális metaadatokat, attól függ, hogy ki fogja használni az eseményeket. Ha például a rendszergazdák vagy a támogatási személyzet egy olyan eszközzel használják az eseményeket, mint a Windows Eseménynapló, amely eseményeket olvas az eseménynapló-csatornákról, akkor meg kell határoznia azokat a csatornákat, amelyekre az eseményeket megírták. Ha azonban a szolgáltatót csak egy ETW nyomkövetési munkamenet engedélyezi, akkor nem kell csatornákat definiálnia.
Bár a szintek, a tevékenységek, az opcode-ok és a kulcsszavak metaadatai nem kötelezőek, az események logikai csoportosítására vagy gyűjtőbe foglalására érdemes őket használni. Az események csoportosításával a felhasználók csak azokat az eseményeket használhatják fel, amelyek fontosak. A fogyasztó például lekérdezheti az összes olyan eseményt, ahol a szint "kritikus" és a kulcsszó "írás", vagy lekérdezhet minden eseményt, amelyet egy adott feladat írt.
Amellett, hogy a felhasználók szintet és kulcsszavakat használnak bizonyos típusú események felhasználásához, az ETW nyomkövetési munkamenetei a szint és a kulcsszó metaadataival tájékoztathatják az ETW-t az eseménykövetési naplóba írt események korlátozására. A munkamenet például csak olyan eseményekre korlátozhatja az eseményeket, ahol a szint "hiba" vagy "kritikus", a kulcsszó pedig "olvasás".
A szolgáltató definiálhat olyan szűrőket, amelyeket a munkamenetek az események eseményadatokon alapuló szűrésére használnak. Az ETW szinttel és kulcsszavakkal határozza meg, hogy az esemény a naplóba van-e írva, de szűrőkkel, a szolgáltató a szűrőadat-feltételek alapján határozza meg, hogy az eseményt az adott munkamenetbe írja-e. A szűrők csak akkor alkalmazhatók, ha egy ETW nyomkövetési munkamenet aktiválja a szolgáltatót.
A következő szakaszok bemutatják a jegyzék összetevőinek definiálását:
- A szolgáltató azonosítása
- Azoknak a csatornáknak a meghatározása, ahová az események íródnak
- A szolgáltató által írt események súlyossági szintjének meghatározása
- A szolgáltató által végrehajtott feladatok és műveletek meghatározása
- A szolgáltató által írott eseményeket osztályozó kulcsszavak meghatározása
- A szolgáltató által az általa írt események szűréséhez használt szűrők meghatározása
- A sablon adatai által hivatkozott név-érték leképezések meghatározása
- Az eseményspecifikus adatokat definiáló sablonok meghatározása
- Az események meghatározása, amelyeket a szolgáltató ír
Bár manuálisan is létrehozhat egy eszközjegyzéket, érdemes megfontolnia a Windows SDK \Bin mappájában található ECManGen.exe eszközt. A ECManGen.exe eszköz egy grafikus felhasználói felületet használ, amely végigvezeti a jegyzékek létrehozásának folyamatán anélkül, hogy XML-címkéket kellene használnia. Az eszköz használatakor az ebben a szakaszban és az EventManifest séma szakaszban található információk ismerete segít.
Ha a Visual Studio-t használja XML-szerkesztőként, hozzáadhatja a EventManifest sémát a projekthez (lásd az XML-menüt), hogy kihasználhassa az Intellisense előnyeit, a beágyazott sémaérvényesítést és egyéb funkciókat a jegyzékfájl egyszerű és pontos megírásához.
A jegyzék megírása után az üzenetfordítóval ellenőrizze a jegyzékfájlt, és hozza létre a szolgáltatóban található erőforrás- és fejlécfájlokat. További információ: Instrumentation Manifestösszeállítása.
Az alábbi példa egy teljes körűen definiált eseményjegyzék csontvázát mutatja be.
<instrumentationManifest
xmlns="http://schemas.microsoft.com/win/2004/08/events"
xmlns:win="http://manifests.microsoft.com/win/2004/08/windows/events"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<instrumentation>
<events>
<provider ...>
<channels>
<importChannel .../>
<channel .../>
</channels>
<levels>
<level .../>
</levels>
<tasks>
<task .../>
</tasks>
<opcodes>
<opcode .../>
</opcodes>
<keywords>
<keyword .../>
</keywords>
<filters>
<filter .../>
</filters>
<maps>
<valueMap ...>
<map .../>
</valueMap>
<bitMap ...>
<map .../>
</bitMap>
</maps>
<templates>
<template ...>
<data .../>
<UserData>
<!-- valid XML fragment -->
</UserData>
</template>
</templates>
<events>
<event .../>
</events>
</provider>
</events>
</instrumentation>
<localization>
<resources ...>
<stringTable>
<string .../>
</stringTable>
</resources>
</localization>
</instrumentationManifest>