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