Freigeben über


Relog

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 Relog-Funktion dient zum Lesen von MSVC-Ereignissen aus einer Ereignisablaufverfolgung für Windows (Event Trace for Windows, ETW), die in eine neue, geänderte ETW geschrieben werden.

Syntax

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

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

Vorlagenparameter

TAnalyzerGroupMembers
Dieses Vorlagenparameterpaket wird immer ermittelt.

TReloggerGroupMembers
Dieses Vorlagenparameterpaket wird immer ermittelt.

Parameter

inputLogFile
Die Eingabe-ETW, aus der Ereignisse gelesen werden sollen.

outputLogFile
Die Datei, in die die neuen Ereignisse geschrieben werden sollen.

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

systemEventsRetentionFlags
Bitmaske, die angibt, welche ETW-Systemereignisse in der neu protokollierten Ablaufverfolgung aufbewahrt werden sollen. Weitere Informationen finden Sie unter RELOG_RETENTION_SYSTEM_EVENT_FLAGS.

analyzerGroup
Die Analysetoolgruppe, die für die Analysephase der Neuprotokollierungssitzung verwendet wird. Rufen Sie MakeStaticAnalyzerGroup auf, um eine Analysegruppe zu erstellen. Um eine aus MakeDynamicAnalyzerGroup erstellte dynamische Analysegruppe zu verwenden, kapseln Sie sie zuerst in einer statischen Analysegruppe ein, indem Sie ihre Adresse an MakeStaticAnalyzerGroup übergeben.

reloggerGroup
Die Relogger-Gruppe, die Ereignisse in die in der Tabelle angegebene Trace-Datei neu protokolliert. outputLogFile. Rufen Sie MakeStaticReloggerGroup an, um eine Relogger-Gruppe zu erstellen. Um eine dynamische Reloggergruppe zu verwenden, die von MakeDynamicReloggerGroup abgerufen wurde, kapseln Sie diese zuerst in einer statischen Reloggergruppe ein, indem Sie deren Adresse an MakeStaticReloggerGroup übergeben.

Rückgabewert

Ein Ergebniscode aus dem RESULT_CODE Enum.

Bemerkungen

Der Eingabe-Trace wird durch die Analyzer-Gruppe geleitet numberOfAnalysisPasses mal. Für Neuprotokollierungsdurchläufe gibt es keine ähnliche Option. Die Ablaufverfolgung wird nur einmal durch die Reloggergruppe geleitet, nachdem alle Analysedurchläufe abgeschlossen sind.

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

Die relog Funktion hängt von der COM API ab. Sie müssen aufrufen CoInitialize bevor Sie das relog. aufrufen CoUninitialize einmal relog ist beendet. Wenn Sie relog ohne einen Aufruf von CoInitialize erhalten Sie zunächst den Fehlercode 9 (RESULT_CODE_FAILURE_START_RELOGGER).