Udostępnij za pośrednictwem


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 MakeStaticAnalyzerGroupklasy .

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