Een sessie voor gebeurtenistracering configureren en starten
Als u een sessie voor gebeurtenistracering wilt configureren, gebruikt u de EVENT_TRACE_PROPERTIES structuur om de eigenschappen van de sessie op te geven. Het geheugen dat u toewijst voor de EVENT_TRACE_PROPERTIES structuur moet groot genoeg zijn om ook de sessie- en logboekbestandsnamen te bevatten die de structuur in het geheugen volgen.
Nadat u de eigenschappen van de sessie hebt opgegeven, roept u de functie StartTrace aan om de sessie te starten. Als de functie slaagt, bevat de parameter SessionHandle de sessie-handle en bevat de eigenschap LoggerNameOffset de offset naar de naam van de sessie.
Als u de providers wilt inschakelen die u gebeurtenissen wilt registreren bij uw sessie, roept u de functie EnableTrace aan om klassieke providers en de Functie EnableTraceEx in te schakelen om op manifest gebaseerde-providers in te schakelen. Als u providers wilt inschakelen die logboekgebeurtenissen in uw sessie filteren op specifieke voorwaarden in Windows 8.1, Windows Server 2012 R2 en hoger, roept u om de EnableTraceEx2--functie aan te roepen.
Daarnaast kunt u ook aanvullende informatie over een gebeurtenis traceren met een aanroep naar de functie TraceSetInformation. TraceSetInformation- extra traceringsinformatie in de uitgebreide gegevenssectie van een gebeurtenis plaatst en informatie kan bevatten, zoals de informatie over de traceringsversie of welke providers momenteel op het systeem zijn geregistreerd. Zie Aanvullende gebeurtenistraceringsgegevens ophalenvoor meer informatie.
Maximaal acht traceringssessies kunnen gebeurtenissen van dezelfde op manifest gebaseerde provider inschakelen en ontvangen. Er kan echter slechts één traceringssessie een klassieke -provider inschakelen. Als meer dan één traceersessie probeert een klassieke provider in te schakelen, stopt de eerste sessie met het ontvangen van gebeurtenissen wanneer de tweede sessie de provider inschakelt. Als sessie A bijvoorbeeld Provider 1 heeft ingeschakeld en sessie B provider 1, ontvangt alleen sessie B gebeurtenissen van Provider 1.
U kunt een van de drie functies gebruiken om een provider in te schakelen, maar als u EnableTrace gebruikt om een op manifest gebaseerde provider in te schakelen, kunt u functionaliteit verliezen omdat u geen MatchAllKeyword-waarde kunt opgeven, geen uitgebreide gegevensitems kunt specificeren die in de gebeurtenis moeten worden opgenomen, of geen door de provider gedefinieerde filtergegevens kunt verstrekken. Zie de sectie Opmerkingen van elke functie voor meer informatie.
In Windows 8.1, Windows Server 2012 R2 en hoger kunnen de nettolading van gebeurtenissen, het bereik en de stack walk-filters worden gebruikt door de functie EnableTraceEx2 en de ENABLE_TRACE_PARAMETERS- en EVENT_FILTER_DESCRIPTOR structuren om te filteren op specifieke voorwaarden in een loggersessie. Voor meer informatie over payloadfilters voor gebeurtenissen, zie de TdhCreatePayloadFilteren TdhAggregatePayloadFilters functies, en de ENABLE_TRACE_PARAMETERS, EVENT_FILTER_DESCRIPTORen PAYLOAD_FILTER_PREDICATE structuren.
Gebruik een van de volgende opdrachten om het niveau en de trefwoorden te bepalen die worden gebruikt om een provider op basis van manifesten in te schakelen:
- Logmanprovidernaam
- WevtutilgpProvidernaam
De opdrachten bevatten alleen het niveau en de trefwoorden. De provider moet alle filtergegevensvereisten voor potentiële controllers documenteert.
Als u de op manifest gebaseerde providers wilt inventariseren, gebruikt u Wevtutilep.
Voor klassieke providers is het aan de provider om de ernstniveaus te documenteren en beschikbaar te maken voor potentiële controllers of vlaggen in te schakelen die worden ondersteund. Als de provider door een controller wil worden ingeschakeld, moet de provider 0 accepteren voor het ernstniveau en vlaggen inschakelen en 0 interpreteren als een verzoek om standaardlogboekregistratie uit te voeren (wat dat ook kan zijn).
U kunt de provider inschakelen voor of nadat de provider zich registreert. Na het inschakelen van de provider roept ETW vervolgens de callback-functie van de provider aan. Als de provider niet is geregistreerd, roept ETW de callback-functie van de provider aan nadat deze zich heeft geregistreerd.
U kunt ook de functie EnableTrace gebruiken om de provider uit te schakelen (te stoppen met het registreren van gebeurtenissen naar uw sessie) of om het logboekregistratieniveau bij te werken of vlaggen van de provider in te schakelen. Met de functie EnableTraceEx kunt u de provider uitschakelen of het niveau, trefwoorden, uitgebreide gegevens en filtergegevens bijwerken. Telkens wanneer u de EnableTrace- of enableTraceEx--functie aanroept, roept ETW de callback-functie van de provider aan. De provider blijft ingeschakeld voor de sessie totdat de sessie de provider uitschakelt.
Als u de traceringssessie wilt stoppen na het verzamelen van gebeurtenissen, roept u de functie ControlTrace aan en geeft u EVENT_TRACE_CONTROL_STOP door als de besturingscode. Als u de sessie wilt opgeven die moet worden gestopt, kunt u de sessiehandle van gebeurtenistracering gebruiken, verkregen via een eerdere aanroep van de functie StartTrace, of de naam van een eerder gestarte sessie. Zorg ervoor dat u alle providers uitschakelt voordat u de sessie stopt. Als u de sessie stopt voordat u de provider eerst uitschakelt, zal ETW de provider uitschakelen en proberen om de callbackfunctie van de provider aan te roepen. Als de toepassing die de sessie heeft gestart, eindigt zonder de provider uit te schakelen of de functie ControlTrace aan te roepen, blijft de provider ingeschakeld.
Als ControlTrace- is geslaagd, worden de sessie-eigenschappen bijgewerkt om de uiteindelijke eigenschapswaarden weer te geven en statistieken uit te voeren voor de sessie voor gebeurtenistracering.
Voor een voorbeeld waarmee een sessie voor gebeurtenistracering wordt gestart, raadpleegt u het volgende:
- voorbeeld waarmee een sessie wordt gemaakt en een op manifest gebaseerde provider wordt ingeschakeld. Hiermee start u een traceringssessie, schakelt u een provider op basis van een manifest in, schakelt u de provider uit en stopt u de sessie.
Zie een van de volgende opties voor meer informatie over het starten van een traceringssessie:
- Een SystemTraceProvider-sessie configureren en starten
- NT Kernel Logger Session configureren en starten
- Een AutoLogger-sessie configureren en starten
- de algemene logboekregistratiesessie configureren en starten
- een privélogboeksessie configureren en starten
Verwante onderwerpen