Szolgáltatói tulajdonságok
A szolgáltatói tulajdonságok több adatot csatolnak egy egyéni szolgáltatói regisztrációhoz. Jegyzékalapú vagy TraceLogging-szolgáltatókhoz is használhatók. Ez jelenleg egy szolgáltatónév és/vagy szolgáltatócsoport egyéni szolgáltatóregisztrációhoz való hozzáadásának támogatását is magában foglalja. A jövőben valószínűleg több tulajdonságtípust is hozzáadunk. Ezeket az információkat a rendszer a kernelben tárolja egy megadott formátumú bináris blobként.
A tulajdonságok csak egyszer állíthatók be a regisztrációhoz. A regisztráció vonásainak beállítására tett további kísérletek sikertelenek lesznek.
A szolgáltatói tulajdonságok jegyzékalapú szolgáltatón való beállításához hívja meg a EventSetInformation függvényt az EventProviderSetTraits információs osztálysal. Az EventInformation puffernek az alábbi formátumú bináris blobot kell tartalmaznia:
{
UINT16 TraitsSize // Total size of the traits including this field
CHAR[] ProviderName // Null terminated utf-8 provider name
TRAIT[] Traits // Zero or more individual traits
}
Az egyes tulajdonságoknak a következő formátumban kell lenniük:
TRAIT {
UINT16 TraitSize // Size of this individual trait including this field
UINT8 Type // ETW_PROVIDER_TRAIT_TYPE
BYTE[] Data
}
Az egyéni tulajdonságból a ETW_PROVIDER_TRAIT_TYPE a következőképpen definiálja:
typedef enum {
EtwProviderTraitTypeGroup = 1,
EtwProviderTraitTypeMax
} ETW_PROVIDER_TRAIT_TYPE;
A TraceLogging-szolgáltatók automatikusan beállítják a szolgáltatói tulajdonságokat a TraceLoggingRegister függvény meghívásakor. A TraceLogging-szolgáltató neve mindig szerepelni fog a jellemzői között. Egy csoport a TraceLogging-szolgáltatón állítható be a TraceLoggingOptionGroup makró használatával a szolgáltató definíciójában.
Egyéni tulajdonságok
Bár a 255 lehetséges tulajdonságtípus nagy része még nincs meghatározva, az 1–127. tulajdonságtípusokat a Microsoft fenntartja a definícióhoz. A fennmaradó magasabb indexelt típusértékeket a külső fejlesztők használhatják, ahogy azt elférnek. Bárki, aki saját egyéni tulajdonságokat ad hozzá a szolgáltatóhoz, az alábbi okokból próbálja meg 256 bájt alatt tartani a teljes tulajdonságméretet:
- A tulajdonságok minden, a szolgáltató számára írt eseményben szerepelnek. A nagy tulajdonságok nagyon nagy naplófájlokhoz vezethetnek.
- A tulajdonságok a szolgáltató teljes élettartama alatt nem lapozott kernelkészletben vannak tárolva.
Szolgáltatói csoportok
A szolgáltatócsoport egy GUID által definiált szabályozható entitás, hasonlóan magához a szolgáltatóhoz. A fő különbség az, hogy míg a szolgáltatói GUID-t csak a szolgáltató regisztrációinak szabályozására használják, a csoport az összes tagregisztrációját szabályozza. Ha például egy adott kulcsszóval és szinttel rendelkező szolgáltatócsoportot engedélyez, akkor a csoporttagok összes regisztrációja engedélyezve lesz az adott kulcsszóval és szinttel.
A csoporttagság engedélyekkel korlátozható. Ha az EventSetInformation hívója nem rendelkezik a megadott csoporthoz való csatlakozáshoz szükséges engedélyekkel, a rendszer megtagadja a tagságot.
Bizonyos esetekben előfordulhat, hogy a nyomkövetési munkamenet-vezérlő néhány szolgáltatót ki szeretne zárni a csoport engedélyezéséből. Ezt egy tiltólista beállításával teheti meg. A tiltólista azon szolgáltatói GRAFIKUS GUID-k listája, amelyek egyetlen naplózási munkamenet csoportbeállításai alapján nem lesznek engedélyezve. A tiltólisták dinamikusan módosíthatók TraceSetInformation és a TraceSetDisallowList információs osztály használatával.
Bár a legtöbb engedélyezési művelet az egyes szolgáltatókhoz hasonlóan végezhető el a szolgáltatócsoportok esetében, vannak kivételek. Kivételek a következők:
- A szolgáltatócsoportokat nem lehet privát nyomkövetési munkamenetekkel szabályozni.
- Az eseménynév, az eseményazonosító és a hasznos adatszűrők nem alkalmazhatók a szolgáltatócsoportokra, mivel egy adott szolgáltató konkrét adatait feltételezik.