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


EseménykövetésI MOF-minősítők

Használja az ebben a szakaszban meghatározott minősítőket a szolgáltató MOF-osztályának, esemény MOF osztály, eseménytípusÚOF-osztálylétrehozásakor, és az eseménytípus MOF osztályánaktulajdonságait. Néhány ilyen minősítőt tartalmazó példa: Az eseményséma közzététele.

SzolgáltatóI MOF-osztály minősítői

Az alábbi táblázat a szolgáltatóI MOF-osztályban megadható minősítőket sorolja fel.

Jelző Adattípus Leírás
Guid sztring Szükséges. Sztring guid, amely egyedileg azonosítja a szolgáltatót. Például guid("{3F92E6E0-9886-434e-85DB-0D11D3904C0A}"). Ez ugyanaz a GUID, amelyet akkor használ, amikor meghívja a RegisterTraceGuids függvényt a szolgáltató regisztrálásához.

 

Esemény MOF-osztály minősítői

Az alábbi táblázat felsorolja az eseményosztályokon (a kapcsolódó eseménytípusosztályokat csoportosító szülőosztályon) megadható minősítőket.

Jelző Adattípus Leírás
Guid sztring Szükséges. Sztring guid, amely azonosítja az események egy osztályát. Például guid("{3F92E6E0-9886-434e-85DB-0D11D3904C0A}"). Az eseményszolgáltatók a guid használatával állítják be a EVENT_TRACE_HEADER. Guid tag, hogy a felhasználók meghatározhassák az általuk fogadott események osztályát.
EventVersion egész szám Ez a minősítő nem kötelező az eseménykövetési osztály legújabb verziójához, és az osztály összes régebbi verziójához szükséges. Az osztály legújabb verziója vagy nem adja meg az EventVersion minősítőt, vagy a legmagasabb verziószámmal rendelkezik. A verziószámok 0-val kezdődnek, például EventVersion(0). Az osztály új verziójának létrehozásakor általában az előző verziót is átnevezi <>_Vn osztálynévre, ahol n egy 0-tól kezdődő n növekményes szám. Példa: FileIo és FileIo_V0.

 

EseménytípusÚ MOF-osztály minősítői

Az alábbi táblázat felsorolja az eseménytípus-osztályban (az eseménytulajdonság adatait meghatározó osztályban) megadható minősítőket.

Jelző Érték Leírás
EventType egész szám Szükséges. Azonosítja az eseménytípus-osztályt. Például: EventType(1). Az eseményszolgáltató ugyanazt az eseménytípus-értéket használja a EVENT_TRACE_HEADER beállításához. Class.Type. Ha ugyanazt az MOF-osztályt több eseménytípushoz használják (mivel ugyanazokat az eseményadatokat használják), adja meg az eseménytípus értékét egész számok tömbjeként, például EventType{12,15}.
EventTypeName sztring Szabadon választható. Az esemény típusát ismerteti. Például: EventTypeName("Start"). Ha ugyanazt az MOF-osztályt több eseménytípushoz is használják (mivel ugyanazokat az eseményadatokat használják), adja meg az eseménytípus névértékét sztringek tömbjeként, például EventTypeName{"Start", "End"}. Az EventTypeName tömb elemei közvetlenül az EventType tömbnek felelnek meg.

 

Tulajdonság-minősítők

Az alábbi táblázat felsorolja a tulajdonságon megadható minősítőket.

Jelző Leírás
BitMap- Megadja a sztringértékekhez megfeleltetendő bitpozíciókat. Ha ezt a minősítőt adja meg, meg kell adnia a BitValues minősítőt is.
BitValues Sztringértékek. Ha a BitMap minősítő is meg van adva, a sztringek közvetlenül a BitMap minősítő értékeinek felelnek meg. Ellenkező esetben feltételezzük, hogy a tulajdonság értéke egy egy-alapú index az értéksztringek között (az első bit a lista első sztringjének felel meg).
bővítmény További információt nyújt az adatok felhasználásáról (értelmezéséről). A bővítmény értéke nem érzékeny a kis- és nagybetűkre. Adja meg az értéket az idézőjelekben, például: Extension("Guid"). Lehetséges bővítményértékek:
guid
Azt jelzi, hogy a tulajdonságadatok guidok. Az MOF-adattípusnak objektumnakkell lennie. A hasznos adat várhatóan egy GUID-struktúra lesz.
IPAddr és IPAddrV4
Az adatok egy IP V4-cím. Az MOF-adattípusnak objektumnakkell lennie. A hasznos adatok várhatóan nem aláírt hosszúak lesznek. Az aláíratlan hosszúak minden bájtja az IP-cím négy része (p1.p2.p3.p4) egyikét jelöli. Az alacsony sorrendű bájt a p1 értéket, a következő bájt pedig a p2 értéket tartalmazza, és így tovább.
Windows Vista előtt: Az IPAddrV4 bővítmény nem támogatott.
IPAddrV6
Az adatok egy IP V6-cím. Az MOF-adattípusnak objektumnakkell lennie. A hasznos adat várhatóan egy IN6_ADDR szerkezet lesz.
Windows Vista előtt: Az IPAddrV6 bővítmény nem támogatott.
NoPrint
Azt jelzi, hogy a fogyasztó nem nyomtathatja ki ezeket az adatokat.
port
Az adatok egy portszámot azonosítanak. Az MOF-adattípusnak objektumnakkell lennie. A hasznos adatok várhatóan nem aláírt rövidek lesznek.
RString
Az új vonal karakterei szóközökre lettek cserélve. A hasznos adat várhatóan null értékű, ANSI-sztring lesz.
RWString
Az új vonal karakterei szóközökre lettek cserélve. A hasznos adat várhatóan null értékű, széles karakterű sztring lesz.
Sid
Az adatok bináris blob sid-et jelölnek. Az MOF-adattípusnak objektumnakkell lennie.
A SID változó hosszúságú. Az első 4 bájtban (ULONG) található érték azt jelzi, hogy a blob tartalmaz-e SID-t. Ha a blob első 4 bájtos (ULONG) értéke nem 0, a blob tartalmaz egy SID-t. A blob első része tartalmazza a TOKEN_USER (a struktúra egy 8 bájtos határhoz van igazítva), a második része pedig a SID-t. A blob SID-részének kezelése:
  • Bájtmutató beállítása a blob elejére
  • Szorozza meg az eseménynapló mutatóméretét 2-gyel, és adja hozzá a terméket a bájtmutatóhoz (a TRACE_LOGFILE_HEADER PointerSize tagja tartalmazza a mutatóméret értékét)

Az alábbi makróval meghatározhatja a SID hosszát.
#define SeLengthSid( Sid ) \
  (8 + (4 * ((SID *)Sid)->SubAuthorityCount))
SizeT
Azt jelzi, hogy a tulajdonság mutatóértéket tartalmaz. A mutató értékének mérete az esemény naplózásához használt operációs rendszertől függ; a hasznos adat 32 bites rendszerek esetén 4 bájtos, 64 bites rendszereknél pedig 8 bájtos értéket tartalmaz. Az MOF-adattípusnak objektumnakkell lennie.
A felhasználóknak figyelmen kívül kell hagyniuk az adattípust, és -minősítő formázását, ha a tulajdonság tartalmazza a SizeT bővítményt. A tulajdonsághoz beolvasandó adatok méretének meghatározásához használja a következőt:
Windows Vista előtt: Előfordulhat, hogy a PointerSize értéke nem pontos. Egy 64 bites számítógépen például egy 32 bites alkalmazás 4 bájtos mutatót naplóz; a munkamenet azonban 8-ra állítja PointerSize.
Variant
Az adatok egy blobot jelölnek. Az első négy bájt (uint32) a blob méretét jelzi. Az MOF-adattípusnak objektumnakkell lennie.
WmiTime
Lefordítja az időbélyeget a rendszeridőre. Az MOF-adattípusnak objektumnakkell lennie. A hasznos adat várhatóan egy aláíratlan 64 bites egész szám lesz.
Windows Vista előtt: Nem érhető el.
Formátum Meghatározza a tulajdonságadatok formátumát. Ha például a Format("w") karakterlánctulajdonságon szerepel, az azt jelzi, hogy a sztring széles sztring. A lehetséges értékek a következők:
Kifejezés Leírás
c
A tulajdonságérték megjelenítése ASCII-karakterként. Ezt a minősítőt uint8 adattípusokkal használhatja.
s
A karaktertömböt null értékű sztringként kell kezelni. A sztring széles karakterű sztring, ha az adattípus char16; ellenkező esetben a sztring egy ASCII karaktersorozat.
w
A tulajdonság értéke egy széles karakterű sztring. Ezt a minősítőt sztring adattípusokkal használhatja.
x
A tulajdonságérték megjelenítése hexadecimális számként. Ezt a minősítőt 16, 32 és 64 bites egész adattípusokkal használhatja.

 

mutató

Azt jelzi, hogy a tulajdonság mutatóértéket tartalmaz. A mutató értékének mérete az esemény naplózásához használt operációs rendszertől függ; a hasznos adat 32 bites rendszerek esetén 4 bájtos, 64 bites rendszereknél pedig 8 bájtos értéket tartalmaz. Az MOF-adattípusnak objektumnakkell lennie.

A felhasználóknak figyelmen kívül kell hagyniuk az adattípust, és -minősítő formázását, ha a tulajdonság tartalmazza a SizeT bővítményt. A tulajdonsághoz beolvasandó adatok méretének meghatározásához használja a következőt:

Windows Vista előtt: Előfordulhat, hogy a PointerSize értéke nem pontos. Egy 64 bites számítógépen például egy 32 bites alkalmazás 4 bájtos mutatót naplóz; a munkamenet azonban 8-ra állítja PointerSize.

Vegye figyelembe, hogy egyes események PointerType használnak Mutató; ne használja PointerType.

StringTermination A sztringtulajdonság leállítását jelzi. A StringTermination("NullTerminated") például azt jelzi, hogy a sztringtulajdonság null értékű. A lehetséges értékek a következők:
Megszámolt

A sztring hossza a sztring elején USHORT értékként van beágyazva.

NotCounted

A sztring nem null értékű, és a sztring hossza nincs beágyazva a sztring elejére. Ebben az esetben a sztringnek az utolsó elemnek kell lennie, és az eseményadatok végéig minden helyet el kell foglalnia.

NullTerminated

A sztring null értékű. Ha nem adja meg a StringTermination minősítőt, a sztring null értékű lesz.

ReverseCounted

A sztring hossza a sztring elején USHORT értékként van beágyazva big-endian formátumban.

ValueDescriptions A Értékek minősítő minden értékének leírását tartalmazza. A TdhEnumerateProviderFieldInformation és TdhQueryProviderFieldInformation függvény ezeket a leírásokat adja vissza, amikor kulcsszó- és szintinformációkat próbál lekérni. A leírások megadása nem kötelező. Ha nem adja meg a leírásokat, a függvények NULLadnak vissza. További részletekért lásd A szint megadása és a jelölők értékének engedélyezése a szolgáltatói számára.
ValueMap Megadja a sztringértékekhez megfeleltetendő egész szám indexét vagy jelzőértékeit. Ha ezt a minősítőt adja meg, meg kell adnia a Értékek minősítőt, és opcionálisan a ValueType minősítőt is. Vegye figyelembe, hogy az ETW nem támogatja a WMI-beállítást, ha az értéktérkép értékeihez sztringeket tartalmaz.

Az alábbi példa bemutatja, hogyan használható az Értéktérkép, az Értékek és az Értéktípus-minősítők.

ValueType("flag"),
ValueMap {"0x01", "0x02", "0x04", "0x08"},
Values {"ValueMapFlag1", "ValueMapFlag2", "ValueMapFlag4", "ValueMapFlag8"}]
értékek Sztringértékek. Ha a ValueMap minősítő is meg van adva, a sztringek közvetlenül a Értéktérkép minősítő értékeinek felelnek meg. Ellenkező esetben feltételezzük, hogy a tulajdonság értéke nulla alapú index az értéksztringekben.
ValueType Azt jelzi, hogy a ValueMap értékek egész szám indexértékek vagy bitjelölő értékek-e. Ha nem adja meg ezt a minősítőt, a rendszer egész szám indexértékeket feltételez. Ha meg szeretné adni, hogy az értékek egész szám indexértékek legyenek, használja a ValueType("index") értéket. Ha meg szeretné adni, hogy az értékek bitjelölő értékek legyenek, használja a ValueType("flag") értéket.
WmiDataId Minden tulajdonságnak tartalmaznia kell a WmiDataId minősítőt. WmiDataId határozza meg, hogy a fogyasztó milyen sorrendben olvassa be az eseményadatokat. A WmiDataId értéke 1-nél kezdődik, és az osztály minden tulajdonságánál növekményes lesz. Például WmiDataId(1).
XMLFragment Azt jelzi, hogy az adatok XML formátumúak, és további formázás nélkül is megjeleníthetők.

 

A szint megadása és a jelölők értékének engedélyezése egy szolgáltató számára

Ha dokumentálni szeretné a szintet, és engedélyezni szeretné a vezérlő által a szolgáltató engedélyezéséhez használt jelzőket, adja meg a "Szint" és a "Jelzők" tulajdonságokat a szolgáltató MOF osztályában. A Level and Flags tulajdonságnevek megkülönböztetik a kis- és nagybetűket. A tulajdonságoknak tartalmazniuk kell az Értékek és Értéktérkép minősítőket, amelyek meghatározzák a lehetséges szintet, és engedélyezik a jelölőértékeket. Az engedélyezés jelölőértékeinek Értéktérkép bit (jelző) értékeknek kell lenniük. A ValueDescriptions minősítő nem kötelező, de minden lehetséges érték leírásához használja. A leírások akkor használatosak, ha valaki meghívja a TdhEnumerateProviderFieldInformation és TdhQueryProviderFieldInformation függvényeket a lehetséges szint lekéréséhez, és engedélyezi a jelzők (kulcsszavak) értékeit a szolgáltató számára.

Az alábbiakban egy szolgáltatóosztály látható, amely meghatározza a lehetséges szintet, és engedélyezi a jelzők értékeit.

[Dynamic,
 Description("IIS_Trace") : amended,
 guid("{3a2a4e84-4c21-4981-ae10-3fda0d9b0f83}"),
 locale("MS\\0x409")]
class IIS_Trace : EventTrace
{
    [Description ("Enable Flags") : amended,
        ValueDescriptions{
             "Allow_tracing_only_selected_requests ",
             "IIS_authentication_events ",
             "IIS_security_events ",
             "IIS_filter_events ",
             "IIS_static_file_events ",
             "IIS_CGI_events ",
             "IIS_compression_events ",
             "IIS_cache_events ",
             "IIS_request_notifications_events ",
             "IIS_module_events ",
             "IIS_FastCGI_events "},
        DefineValues{
             "UseUrlFilter",
             "IISAuthentication",
             "IISSecurity",
             "IISFilter",
             "IISStaticFile",
             "IISCGI",
             "IISCompression",
             "IISCache",
             "IISRequestNotification",
             "IISModule",
             "IISFastCGI"},
        Values{
             "UseUrlFilter",
             "IISAuthentication",
             "IISSecurity",
             "IISFilter",
             "IISStaticFile",
             "IISCGI",
             "IISCompression",
             "IISCache",
             "IISRequestNotification",
             "IISModule",
             "IISFastCGI"},
        ValueMap{
             "0x00000001",
             "0x00000002",
             "0x00000004",
             "0x00000008",
             "0x00000010",
             "0x00000020",
             "0x00000040",
             "0x00000080",
             "0x00000100",
             "0x00000200",
             "0x00001000"}: amended
    ]
    uint32 Flags;

    [Description ("Levels") : amended,
        ValueDescriptions{
            "Abnormal exit or termination",
            "Severe errors that need logging",
            "Warnings such as allocation failure",
            "Includes non-error cases",
            "Detailed traces from intermediate steps" } : amended,
         DefineValues{
            "TRACE_LEVEL_FATAL",
            "TRACE_LEVEL_ERROR",
            "TRACE_LEVEL_WARNING"
            "TRACE_LEVEL_INFORMATION",
            "TRACE_LEVEL_VERBOSE" },
        Values{
            "Fatal",
            "Error",
            "Warning",
            "Information",
            "Verbose" },
        ValueMap{
            "0x1",
            "0x2",
            "0x3",
            "0x4",
            "0x5" },
        ValueType("index")
    ]
    uint32 Level;
};