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);

Parameter

TAnalyzerGroupMembers
Dieser Parameter wird immer hergeleitet.

TReloggerGroupMembers
Dieser Parameter wird immer hergeleitet.

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{b> RELOG_RETENTION_SYSTEM_EVENT_FLAGS.

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.

Anmerkung

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.

Die relog Funktion hängt von der COM-API ab. Sie müssen anrufen CoInitialize , bevor Sie anrufen relog. Anruf nach relog Abschluss des AnrufsCoUninitialize. Wenn Sie ohne einen Aufruf zuerst aufrufenrelog, erhalten Sie Fehlercode 9 (RESULT_CODE_FAILURE_START_RELOGGER).CoInitialize