Relog
Пакет SDK для Сборки C++ совместим с Visual Studio 2017 и более поздними версиями. Чтобы увидеть документацию для этих версий, установите в данной статье селектор Версия Visual Studio в Visual Studio 2017 и более поздних версий. Он находится в верхней части оглавления на этой странице.
Функция Relog
используется для чтения событий MSVC из трассировки событий Windows (ETW) и записи этих событий в новую, измененную трассировку ETW.
Синтаксис
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);
Параметры
TAnalyzerGroupMembers
Этот параметр выводится во всех случаях.
TReloggerGroupMembers
Этот параметр выводится во всех случаях.
inputLogFile
Входная трассировка ETW, из которой нужно считать события.
outputLogFile
Файл, в который записываются новые события.
numberOfAnalysisPasses
Количество проходов анализа для выполнения во входной трассировке. Трассировка передается через предоставленную группу анализатора один раз для каждого выполнения анализа.
systemEventsRetentionFlags
Битовая маска, указывающая, какие системные события трассировки событий Windows следует сохранить в повторно записанных трассировках. Дополнительные сведения см. в статье RELOG_RETENTION_SYSTEM_EVENT_FLAGS.
analyzerGroup
Группа анализатора, используемая для анализа сеанса повторной записи. Вызовите MakeStaticAnalyzerGroup, чтобы создать группу анализатора. Чтобы использовать группу динамического анализатора, полученную из MakeDynamicAnalyzerGroup, сначала необходимо инкапсулировать ее в статическую группу анализатора, передав ее адрес в MakeStaticAnalyzerGroup
.
reloggerGroup
Группа перезаписи, которая выполняет перезапись событий в файл трассировки, указанный в outputLogFile. Вызовите MakeStaticReloggerGroup, чтобы создать группу повторной записи в журнал. Чтобы использовать группу динамической перезаписи, полученную из MakeDynamicReloggerGroup, сначала нужно инкапсулировать ее в группу динамической перезаписи, передав ее адрес в MakeStaticReloggerGroup
.
Возвращаемое значение
Код результата из перечисления RESULT_CODE.
Комментарий
Входная трассировка передается через группу анализатора значения времени numberOfAnalysisPasses раз. Для проходов перезаписи не существует аналогичного параметра. Трассировка передается через группу перезаписи только один раз после завершения всех этапов анализа.
Повторная запись системных событий, таких как примеры ЦП, из класса перезаписи не поддерживается. Используйте параметр systemEventsRetentionFlags, чтобы решить, какие системные события следует хранить в выходной трассировке.
Функция relog
зависит от COM-API. Перед вызовом необходимо вызвать CoInitialize
relog
. Вызов CoUninitialize
после relog
завершения. При вызове relog
без вызова CoInitialize
сначала вы получите код ошибки 9 (RESULT_CODE_FAILURE_START_RELOGGER
).