Udostępnij przez


Relog

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 szablonu

TAnalyzerGroupMembers
Ten pakiet parametrów szablonu jest zawsze dedukowany.

TReloggerGroupMembers
Ten pakiet parametrów szablonu jest zawsze dedukowany.

Parametry

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 analizatora dynamicznego uzyskanego z MakeDynamicAnalyzerGroup, najpierw opakuj ją wewnątrz grupy analizatora statycznego, przekazując jego adres do MakeStaticAnalyzerGroup.

reloggerGroup
Grupa relogerów, która ponownie zapisuje zdarzenia do pliku śledzenia określonego w outputLogFile. Wywołaj MakeStaticReloggerGroup, aby utworzyć grupę reloggera. Aby użyć dynamicznej grupy ponownego rejestrowania uzyskanej z MakeDynamicReloggerGroup, najpierw umieść ją do statycznej grupy ponownego rejestrowania, przekazując jej adres do MakeStaticReloggerGroup.

Wartość zwracana

Kod wyniku z enumeracji RESULT_CODE.

Uwagi

Ślad wejściowy jest przekazywany przez grupę analizatora numberOfAnalysisPasses razy. Nie ma podobnej opcji ponownego rejestrowania przebiegów. Ślad jest przekazywany przez grupę ponownego zapisu 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ć śledzone w danych wyjściowych.

Funkcja relog zależy od interfejsu API MODELU COM. Przed wywołaniem metody należy zadzwonićCoInitialize.relog CoUninitialize Po zakończeniu połączenia.relog Jeśli wywołasz połączenie relog bez wywołania CoInitialize metody , otrzymasz kod błędu 9 (RESULT_CODE_FAILURE_START_RELOGGER).