struktura ANALYSIS_CALLBACKS

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.

Struktura ANALYSIS_CALLBACKS jest używana podczas inicjowania obiektu ANALYSIS_DESCRIPTOR lub RELOG_DESCRIPTOR . Określa, które funkcje mają być wywoływane podczas analizy lub ponownego rejestrowania śledzenia zdarzeń dla systemu Windows (ETW).

Składnia

typedef struct ANALYSIS_CALLBACKS_TAG
{
    OnAnalysisEventFunc     OnStartActivity;
    OnAnalysisEventFunc     OnStopActivity;
    OnAnalysisEventFunc     OnSimpleEvent;
    OnTraceInfoFunc         OnTraceInfo;
    OnBeginEndPassFunc      OnBeginAnalysis;
    OnBeginEndPassFunc      OnEndAnalysis;
    OnBeginEndPassFunc      OnBeginAnalysisPass;
    OnBeginEndPassFunc      OnEndAnalysisPass;
} ANALYSIS_CALLBACKS;

Członkowie

Nazwa/nazwisko opis
OnStartActivity Wywoływane w celu przetworzenia zdarzenia rozpoczęcia działania.
OnStopActivity Wywoływane w celu przetworzenia zdarzenia zatrzymania działania.
OnSimpleEvent Wywoływane w celu przetworzenia prostego zdarzenia.
OnTraceInfo W przypadku sesji analizy wywoływanych na początku każdego przebiegu analizy. W przypadku sesji ponownego rejestrowania, wywoływanych na początku każdego przebiegu analizy, i ponownie na początku przebiegu ponownego rejestrowania. Ta funkcja jest wywoływana tylko po wywołaniu metody OnBeginAnalysisPass.
OnBeginAnalysis W przypadku sesji analizy wywoływanych przed rozpoczęciem jakiejkolwiek analizy. W przypadku sesji ponownego rejestrowania, wywoływane dwa razy przed rozpoczęciem fazy analizy: raz, aby ogłosić rozpoczęcie sesji ponownego rejestrowania, a po raz kolejny ogłosić początek fazy analizy.
OnEndAnalysis W przypadku sesji analizy ta funkcja jest wywoływana po zakończeniu wszystkich przebiegów analizy. W przypadku sesji ponownego rejestrowania ta funkcja jest wywoływana po zakończeniu wszystkich przebiegów analizy fazy analizy. Następnie jest wywoływany ponownie po zakończeniu ponownego rejestrowania.
OnBeginAnalysisPass Wywoływana podczas rozpoczynania analizy lub przekazywania ponownego rejestrowania przed przetworzeniem dowolnego zdarzenia.
OnEndAnalysisPass Wywołana podczas kończenia przebiegu analizy lub przekazywania ponownego rejestrowania po przetworzeniu wszystkich zdarzeń.

Uwagi

Faza analizy sesji ponownego rejestrowania jest uznawana za część sesji ponownego rejestrowania i może zawierać wiele przebiegów analizy. Z tego powodu OnBeginAnalysis jest wywoływany dwa razy w wierszu na początku sesji ponownego rejestrowania. OnEndAnalysis jest wywoływana na końcu fazy analizy, przed rozpoczęciem fazy ponownego rejestrowania i po raz kolejny na końcu fazy ponownego rejestrowania. Faza ponownego rejestrowania zawsze zawiera pojedynczy pass ponownego rejestrowania.

Analizatory mogą być częścią zarówno analizy, jak i fazy ponownego rejestrowania sesji rejestrowania. Te analizatory mogą określić, która faza jest obecnie w toku, śledząc pary OnBeginAnalysis i OnEndAnalysis wywołania. Dwa OnBeginAnalysis wywołania bez żadnego OnEndAnalysis wywołania oznaczają, że faza analizy jest w toku. Dwa OnBeginAnalysis wywołania i jedno OnEndAnalysis wywołanie oznacza, że faza ponownego rejestrowania trwa. Dwie metody OnBeginAnalysis i dwa OnEndAnalysis wywołania oznaczają zakończenie obu faz.

Wszystkie elementy członkowskie ANALYSIS_CALLBACKS struktury muszą wskazywać prawidłową funkcję. Aby uzyskać więcej informacji na temat akceptowanych podpisów funkcji, zobacz OnAnalysisEventFunc, OnTraceInfoFunc i OnBeginEndPassFunc.