TRACE_PERIODIC_CAPTURE_STATE_INFO-Struktur (evntrace.h)

Wird mit TraceQueryInformation und TraceSetInformation verwendet, um Informationen im Zusammenhang mit einem regelmäßigen Erfassungszustand abzurufen oder festzulegen.

Syntax

typedef struct _TRACE_PERIODIC_CAPTURE_STATE_INFO {
  ULONG  CaptureStateFrequencyInSeconds;
  USHORT ProviderCount;
  USHORT Reserved;
} TRACE_PERIODIC_CAPTURE_STATE_INFO, *PTRACE_PERIODIC_CAPTURE_STATE_INFO;

Member

CaptureStateFrequencyInSeconds

Die Häufigkeit der Zustandserfassungen in Sekunden.

ProviderCount

Die Anzahl der Anbieter.

Reserved

Für die zukünftige Verwendung reserviert.

Bemerkungen

Der regelmäßige Erfassungszustand ist eine Möglichkeit, aufzeichnungszustandsbenachrichtigungen routinemäßig an Anbieter zu senden. Wenn dies aktiviert ist, werden Benachrichtigungen nur an Anbieterregistrierungen gesendet, die zuvor für die aktuelle Sitzung aktiviert wurden. Jeder Anbieter kann seine eigene Antwort (sofern vorhanden) auf eine Benachrichtigung definieren. Beachten Sie, dass Ereignisse, die vom Anbieter als Reaktion auf eine Benachrichtigung protokolliert werden, an jede ETW-Sitzung gesendet werden, für die der Anbieter aktiviert ist, ähnlich wie bei einem manuell angeforderten Erfassungszustand.

So verwenden Sie den regelmäßigen Erfassungszustand:

  1. Weisen Sie einen Puffer vom Typ TRACE_PERIODIC_CAPTURE_STATE_INFO zu. Die Größe des Puffers sollte sein: sizeof(TRACE_PERIODIC_CAPTURE_STATE_INFO) + (x * sizeof(GUID)), wobei x die Anzahl der Anbieter ist, die Sie aktivieren möchten.
  2. Rufen Sie TraceQueryInformation mithilfe von TracePeriodicCaptureStateInfo für die TRACE_INFO_CLASS-Enumeration auf. Übergeben Sie den Puffer und seine Größe als Die Parameter TraceInformation und InformationLength von TraceQueryInformation.
  3. Legen Sie CaptureStateFrequencyInSeconds von TRACE_PERIODIC_CAPTURE_STATE_INFO auf die Mindesthäufigkeit fest, die von der Windows-Version unterstützt wird. Dieser Wert kann sich in Zukunft ändern, sodass eine feste Codierung nicht empfohlen wird. Wenn die Häufigkeit unter dem Minimum liegt, schlägt der Aufruf von TraceSetInformation fehl.
  4. Legen Sie providerCount von TRACE_PERIODIC_CAPTURE_STATE_INFO auf die Anzahl der übergebenen Anbieter-GUIDs fest.
  5. Fügen Sie die GUIDs jedes Anbieters nach dem Ende der TRACE_PERIODIC_CAPTURE_STATE_INFO-Struktur hinzu. Dabei wird der zusätzliche Speicherplatz aus (x * sizeof(GUID)) aus dem ersten Schritt verwendet.
  6. Rufen Sie TraceSetInformation mithilfe von TracePeriodicCaptureStateListInfo aus der TRACE_INFO_CLASS-Enumeration auf.
  7. Um den regelmäßigen Erfassungszustand zu deaktivieren, rufen Sie TraceSetInformation erneut mit TracePeriodicCaptureStateListInfo aus dem TRACE_INFO_CLASS, NULL für traceInformation und 0 als InformationLength auf.

Anforderungen

   
Kopfzeile evntrace.h