StopAndRelogTracingSession

Zestaw SDK kompilacji języka C++ Szczegółowe informacje 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 StopAndRelogTracingSession zatrzymuje bieżącą sesję śledzenia i zapisuje wynikowy ślad w pliku tymczasowym. Sesja rejestrowania jest następnie natychmiast uruchamiana przy użyciu pliku tymczasowego jako danych wejściowych. Ostatni ponowny ślad utworzony przez sesję rejestrowania jest zapisywany w pliku określonym przez obiekt wywołujący. Pliki wykonywalne wywołujące tę funkcję muszą mieć uprawnienia administratora.

Składnia

template <
    typename... TAnalyzerGroupMembers,
    typename... TReloggerGroupMembers>
RESULT_CODE StopAndRelogTracingSession(
    const char*                                   sessionName,
    const char*                                   outputLogFile,
    TRACING_SESSION_STATISTICS*                   statistics,
    unsigned                                      numberOfAnalysisPasses,
    unsigned long long                            systemEventsRetentionFlags,
    StaticAnalyzerGroup<TAnalyzerGroupMembers...> analyzerGroup,
    StaticReloggerGroup<TReloggerGroupMembers...> reloggerGroup);

template <
    typename... TAnalyzerGroupMembers,
    typename... TReloggerGroupMembers>
RESULT_CODE StopAndRelogTracingSession(
    const wchar_t*                                sessionName,
    const wchar_t*                                outputLogFile,
    TRACING_SESSION_STATISTICS*                   statistics,
    unsigned                                      numberOfAnalysisPasses,
    unsigned long long                            systemEventsRetentionFlags,
    StaticAnalyzerGroup<TAnalyzerGroupMembers...> analyzerGroup,
    StaticReloggerGroup<TReloggerGroupMembers...> reloggerGroup);

Parametry

Nazwa_sesji
Nazwa sesji śledzenia do zatrzymania. Użyj tej samej nazwy sesji co przekazana do elementu StartTracingSession, StartTracingSessionA lub StartTracingSessionW.

outputLogFile
Plik, w którym ma być zapisywany relogged ślad wygenerowany przez sesję ponownego rejestrowania.

statystyki
Wskaźnik do obiektu TRACING_SESSION_STATISTICS . StopAndRelogTracingSession zapisuje statystyki zbierania danych śledzenia w tym obiekcie przed zwróceniem.

numberOfAnalysisPasses
Liczba przebiegów analizy do uruchomienia w śladzie. Dane śledzenia są przekazywane przez podaną grupę analizatorów raz na przekazanie analizy.

systemEventsRetentionFlags
Maska bitów RELOG_RETENTION_SYSTEM_EVENT_FLAGS określająca, które zdarzenia ETW systemu mają być zachowywane w relogged śledzenia.

analyzerGroup
Grupa analizatorów używana do fazy analizy sesji ponownego rejestrowania. Wywołaj metodę MakeStaticAnalyzerGroup , aby utworzyć grupę analizatorów. Jeśli chcesz użyć grupy analizatora dynamicznego uzyskanej z klasy MakeDynamicAnalyzerGroup, najpierw hermetyzuj ją wewnątrz grupy analizatora statycznego, przekazując jej adres do MakeStaticAnalyzerGroup.

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. Jeśli chcesz użyć dynamicznej grupy ponownego 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 .

Uwagi

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.