StopAndRelogTracingSession

Das C++ Build Insights SDK ist mit Visual Studio 2017 und höher kompatibel. Um die Dokumentation für diese Versionen anzuzeigen, legen Sie das Auswahlsteuerelement Version in Visual Studio für diesen Artikel auf Visual Studio 2017 oder höher fest. Es befindet sich am Anfang des Inhaltsverzeichnisses auf dieser Seite.

Die StopAndRelogTracingSession-Funktion beendet eine laufende Ablaufverfolgungssitzung und speichert die resultierende Ablaufverfolgung in einer temporären Datei. Eine Neuprotokollierungssitzung wird dann sofort mit der temporären Datei als Eingabe gestartet. Die durch die Neuprotokollierung erzeugte endgültige Ablaufverfolgung wird in einer vom Aufrufer angegebenen Datei gespeichert. Ausführbare Dateien, die diese Funktion aufrufen, benötigen Administratorberechtigungen.

Syntax

template <
    typename... TAnalyzerGroupMembers,
    typename... TReloggerGroupMembers>
RESULT_CODE StopAndRelogTracingSession(
    const char*                                   sessionName,
    const char*                                   outputLogFile,
    TRACING_SESSION_STATISTICS*                   statistics,
    unsigned                                      numberOfAnalysisPasses,
    unsigned long long                            systemEventsRetentionFlags,
    StaticAnalyzerGroup<TAnalyzerGroupMembers...> analyzerGroup,
    StaticReloggerGroup<TReloggerGroupMembers...> reloggerGroup);

template <
    typename... TAnalyzerGroupMembers,
    typename... TReloggerGroupMembers>
RESULT_CODE StopAndRelogTracingSession(
    const wchar_t*                                sessionName,
    const wchar_t*                                outputLogFile,
    TRACING_SESSION_STATISTICS*                   statistics,
    unsigned                                      numberOfAnalysisPasses,
    unsigned long long                            systemEventsRetentionFlags,
    StaticAnalyzerGroup<TAnalyzerGroupMembers...> analyzerGroup,
    StaticReloggerGroup<TReloggerGroupMembers...> reloggerGroup);

Parameter

sessionName
Der Name der anzuhaltenden Ablaufverfolgungssitzung. Verwenden Sie den gleichen Sitzungsnamen wie den, der an StartTracingSession, StartTracingSessionA oder StartTracingSessionW übergeben wurde.

outputLogFile
Die Datei, in die die neu protokollierte Ablaufverfolgung geschrieben werden soll, die von der Neuprotokollierungssitzung generiert wurde.

Statistiken
Zeiger auf ein TRACING_SESSION_STATISTICS-Objekt. StopAndRelogTracingSession schreibt Sammlungsstatistiken zur Ablaufverfolgung in dieses Objekt, bevor es zurückgegeben wird.

numberOfAnalysisPasses
Anzahl der Analysedurchläufe, die für die Ablaufverfolgung ausgeführt werden sollen. Die Ablaufverfolgung durchläuft die angegebene Analysegruppe einmal pro Analysedurchlauf.

systemEventsRetentionFlags
Eine RELOG_RETENTION_SYSTEM_EVENT_FLAGS-Bitmaske, die angibt, welche ETW-Systemereignisse in der erneut protokollierten Ablaufverfolgung aufbewahrt werden sollen.

analyzerGroup
Die Analysetoolgruppe, die für die Analysephase der Neuprotokollierungssitzung verwendet wird. Rufen Sie MakeStaticAnalyzerGroup auf, um eine Analysetoolgruppe zu erstellen. Wenn Sie eine dynamische Analysetoolgruppe verwenden möchten, die aus MakeDynamicAnalyzerGroup abgerufen wurde, kapseln Sie sie zuerst in einer statischen Analysetoolgruppe, indem Sie deren Adresse an MakeStaticAnalyzerGroup übergeben.

reloggerGroup
Die Neuprotokollierungsgruppe, die Ereignisse in der in outputLogFile angegebenen Ablaufverfolgungsdatei neu protokolliert. Rufen Sie MakeStaticReloggerGroup auf, um eine Neuprotokollierungsgruppe zu erstellen. Wenn Sie eine dynamische Neuprotokollierungsgruppe verwenden möchten, die von MakeDynamicReloggerGroup abgerufen wurde, kapseln Sie sie zuerst in einer statischen Neuprotokollierungsgruppe, indem Sie deren Adresse an MakeStaticReloggerGroup übergeben.

Rückgabewert

Ein Ergebniscode aus der Enumeration RESULT_CODE.

Hinweise

Die Eingabeablaufverfolgung durchläuft die Analysetoolgruppe mit der von numberOfAnalysisPasses angegebenen Häufigkeit. Für Neuprotokollierungsdurchläufe gibt es keine ähnliche Option. Die Ablaufverfolgung durchläuft die Neuprotokollierungsgruppe nur einmal, nachdem alle Analysedurchläufe abgeschlossen wurden.

Die Neuprotokollierung von Systemereignissen wie CPU-Stichproben in einer Relogger-Klasse wird nicht unterstützt. Verwenden Sie den Parameter systemEventsRetentionFlags, um zu entscheiden, welche Systemereignisse in der Ausgabeablaufverfolgung aufbewahrt werden sollen.