Megosztás a következőn keresztül:


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.