Dela via


Konfigurera och starta en händelsespårningssession

Om du vill konfigurera en händelsespårningssession använder du EVENT_TRACE_PROPERTIES-strukturen för att ange egenskaperna för sessionen. Det minne som du allokerar för den EVENT_TRACE_PROPERTIES strukturen måste vara tillräckligt stort för att även innehålla sessions- och loggfilnamnen som följer strukturen i minnet.

När du har angett egenskaperna för sessionen anropar du funktionen StartTrace för att starta sessionen. Om funktionen lyckas kommer parametern SessionHandle att innehålla sessionshandtaget, och egenskapen LoggerNameOffset kommer att innehålla avståndet till sessionens namn.

Om du vill aktivera de leverantörer som du vill logga händelser till sessionen anropar du funktionen EnableTrace för att aktivera klassiska providers och funktionen EnableTraceEx för att aktivera manifestbaserade providers. För att aktivera leverantörer som du vill ska logga händelser för sessionsfiltrering baserat på specifika villkor i Windows 8.1, Windows Server 2012 R2 och senare ska du anropa funktionen EnableTraceEx2.

Dessutom kan du även spåra ytterligare information om en händelse med ett anrop till funktionen TraceSetInformation. TraceSetInformation lägger till ytterligare spårningsinformation i avsnittet för utökade data i en händelse och kan innehålla information som information om spårningsversionen eller vilka leverantörer som för närvarande är registrerade i systemet. Mer information finns i Hämta ytterligare händelsespårningsdata.

Upp till åtta spårningssessioner kan aktivera och ta emot händelser från samma manifestbaserad provider. Men bara en spårningssession kan aktivera en klassisk-provider. Om fler än en spårningssession försöker aktivera en klassisk provider slutar den första sessionen att ta emot händelser när den andra sessionen aktiverar providern. Om till exempel Session A aktiverade Provider 1 och sedan Session B aktiverade Provider 1, skulle endast Session B ta emot händelser från Provider 1.

Du kan använda någon av de tre funktionerna för att aktivera en provider, men du kan förlora funktioner om du använder EnableTrace- för att aktivera en manifestbaserad provider eftersom du inte kommer att kunna ange ett MatchAllKeyword-värde, ange utökade dataobjekt som ska inkluderas i händelsen eller tillhandahålla providerdefinierade filterdata. Mer information finns i avsnittet Kommentarer för varje funktion.

I Windows 8.1, Windows Server 2012 R2 och senare kan filter för händelsenyttolast, omfång och stackvandring användas av funktionen EnableTraceEx2, strukturerna ENABLE_TRACE_PARAMETERS och EVENT_FILTER_DESCRIPTOR för att filtrera baserat på specifika villkor i en loggningssession. Mer information om händelsenyttolastfilter kan hittas i funktionerna TdhCreatePayloadFilteroch TdhAggregatePayloadFilters, samt i strukturerna ENABLE_TRACE_PARAMETERS, EVENT_FILTER_DESCRIPTORoch PAYLOAD_FILTER_PREDICATE.

Om du vill fastställa vilken nivå och de nyckelord som används för att aktivera en manifestbaserad provider använder du något av följande kommandon:

  • Logmansökfrågaprovidernamn
  • Wevtutilgpprovidernamn

Kommandona listar endast nivån och nyckelorden. Providern måste dokumentera eventuella krav på filterdata för potentiella kontrollanter.

Om du vill räkna upp manifestbaserade leverantörer använder du Wevtutilep.

För klassiska leverantörer är det upp till leverantören att dokumentera och göra tillgängliga för potentiella kontrollanter allvarlighetsgraderna eller aktivera flaggor som den stöder. Om providern vill aktiveras av någon kontrollant bör providern acceptera 0 för allvarlighetsgraden och aktivera flaggor och tolka 0 som en begäran om att utföra standardloggning (vad det än kan vara).

Du kan aktivera providern innan eller efter att providern har registrerat sig. När du har aktiverat providern anropar ETW sedan providerns återanropsfunktion. Om providern inte är registrerad anropar ETW leverantörens återanropsfunktion när den har registrerat sig.

Du kan också använda funktionen EnableTrace för att inaktivera providern (stoppa den från att logga händelser till sessionen) eller för att uppdatera loggningsnivån eller aktivera providerns flaggor. Med funktionen EnableTraceEx kan du inaktivera providern eller uppdatera nivån, nyckelorden, utökade data och filtrera data. Varje gång du anropar funktionen EnableTrace eller EnableTraceEx anropar ETW providerns återanropsfunktion. Providern förblir aktiverad för sessionen tills sessionen inaktiverar providern.

Om du vill stoppa spårningssessionen efter insamling av händelser anropar du funktionen ControlTrace och skickar EVENT_TRACE_CONTROL_STOP som kontrollkod. Om du vill ange vilken session som ska stoppas kan du skicka händelsespårningssessionshandtaget som hämtats från ett tidigare anrop till funktionen StartTrace eller namnet på en tidigare startad session. Se till att inaktivera alla leverantörer innan du stoppar sessionen. Om du stoppar sessionen innan du först inaktiverar providern inaktiverar ETW providern och försöker anropa providerns kontrollåteranropsfunktion. Om programmet som startade sessionen slutar utan att inaktivera providern eller anropa funktionen ControlTrace förblir providern aktiverad.

Om ControlTrace- lyckas uppdateras sessionsegenskaperna för att återspegla de slutliga egenskapsvärdena och köra statistik för händelsespårningssessionen.

Ett exempel som startar en händelsespårningssession finns i följande:

Mer information om hur du startar en spårningssession finns i något av följande:

Konfigurera och starta en privat loggningssession

Konfigurera och starta en SystemTraceProvider-session

Konfigurera och starta en AutoLogger-session

Konfigurera och starta NT Kernel Logger-sessionen

ControlTrace

EnableTrace

EnableTraceEx

EnableTraceEx2

ENABLE_TRACE_PARAMETERS

EVENT_FILTER_DESCRIPTOR

EVENT_TRACE_PROPERTIES

PAYLOAD_FILTER_PREDICATE

StartTrace

TdhAggregatePayloadFilters

TdhCreatePayloadFilter

Uppdatera en händelsespårningssession