Ponownego zarejestrowania
Zestaw SDK usługi Build Insights języka C++ jest zgodny z programem Visual Studio 2017 lub nowszym. Aby zapoznać się z dokumentacją dla tych wersji, ustaw kontrolkę selektora wersji programu Visual Studio dla tego artykułu na program Visual Studio 2017 lub nowszy. Znajduje się on w górnej części spisu treści na tej stronie.
Funkcja Relog
służy do odczytywania zdarzeń MSVC ze śledzenia zdarzeń systemu Windows (ETW) i zapisywania ich w nowym, zmodyfikowanym śledzeniu ETW.
Składnia
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);
Parametry
TAnalyzerGroupMembers
Ten parametr jest zawsze wywoływany.
TReloggerGroupMembers
Ten parametr jest zawsze wywoływany.
inputLogFile
Wejściowy ślad ETW, z którego chcesz odczytywać zdarzenia.
outputLogFile
Plik, w którym mają być zapisywane nowe zdarzenia.
numberOfAnalysisPasses
Liczba przebiegów analizy do uruchomienia w śladzie wejściowym. Dane śledzenia są przekazywane przez podaną grupę analizatorów raz na przekazanie analizy.
systemEventsRetentionFlags
Maska bitów określająca, które zdarzenia ETW systemu mają być zachowywane w relogged śledzenia. Aby uzyskać więcej informacji, zobacz RELOG_RETENTION_SYSTEM_EVENT_FLAGS.
analyzerGroup
Grupa analizatorów używana do fazy analizy sesji ponownego rejestrowania. Wywołaj metodę MakeStaticAnalyzerGroup , aby utworzyć grupę analizatorów. Aby użyć grupy analizatorów dynamicznych uzyskanych z klasy MakeDynamicAnalyzerGroup, najpierw hermetyzują ją wewnątrz grupy analizatora statycznego, przekazując swój adres do MakeStaticAnalyzerGroup
klasy .
reloggerGroup
Grupa ponownego dziennika, która ponownie zapisuje zdarzenia w pliku śledzenia określonym w pliku outputLogFile. Wywołaj metodę MakeStaticReloggerGroup , aby utworzyć grupę ponownego dziennika. Aby użyć dynamicznej grupy ponownej rejestrowania uzyskanej z klasy MakeDynamicReloggerGroup, najpierw hermetyzuj ją wewnątrz statycznej grupy ponownego rejestrowania, przekazując jej adres do MakeStaticReloggerGroup
.
Wartość zwracana
Kod wyniku z wyliczenia RESULT_CODE .
Uwaga
Dane śledzenia wejściowego są przekazywane za pośrednictwem liczby numerów grupy analizatoraOfAnalysisPasses razy. Nie ma podobnej opcji ponownego rejestrowania przebiegów. Ślad jest przekazywany przez grupę ponownego dziennika tylko raz, po zakończeniu wszystkich przebiegów analizy.
Rejestrowanie zdarzeń systemowych, takich jak przykłady procesora CPU z poziomu klasy ponownego rejestrowania, nie jest obsługiwane. Użyj parametru systemEventsRetentionFlags , aby zdecydować, które zdarzenia systemowe mają być zachowywane w śladzie danych wyjściowych.
Funkcja relog
zależy od interfejsu API MODELU COM. Przed wywołaniem metody należy zadzwonićCoInitialize
.relog
relog
Po zakończeniu połączenia.CoUninitialize
Jeśli wywołasz połączenie relog
bez wywołania CoInitialize
metody , otrzymasz kod błędu 9 (RESULT_CODE_FAILURE_START_RELOGGER
).