Поделиться через


Функция CloseTrace (evntrace.h)

Функция CloseTrace закрывает сеанс обработки трассировки, созданный с помощью OpenTrace.

Синтаксис

ETW_APP_DECLSPEC_DEPRECATED ULONG WMIAPI CloseTrace(
  [in] PROCESSTRACE_HANDLE TraceHandle
);

Параметры

[in] TraceHandle

Обработка сеанса обработки трассировки для закрытия. Функция OpenTrace возвращает этот дескриптор.

Возвращаемое значение

Если функция выполнена успешно, возвращаемое значение ERROR_SUCCESS.

Если функция завершается ошибкой, возвращаемое значение является одним из системных кодов ошибок. Ниже приведены некоторые распространенные ошибки и их причины.

  • ERROR_INVALID_HANDLE

    Верно одно из условий ниже:

    • TraceHandle равно 0.
    • TraceHandleINVALID_PROCESSTRACE_HANDLE.
    • TraceHandle не является допустимым дескриптором.
  • ERROR_BUSY

    До Windows Vista невозможно закрыть трассировку до завершения функции ProcessTrace .

  • ERROR_CTX_CLOSE_PENDING

    Звонок был успешным. Функция ProcessTrace будет остановлена после обработки всех событий в режиме реального времени в буферах (она не будет получать новые события).

Замечания

Потребители вызывают эту функцию, чтобы закрыть дескриптор трассировки, возвращаемый OpenTrace.

Это важно

Не используйте эту функцию для закрытия дескриптора трассировки, возвращаемого StartTrace.

Если вы обрабатываете события из файла журнала, вызовите эту функцию только после возврата функции ProcessTrace . Однако при обработке событий в режиме реального времени можно вызвать эту функцию перед возвратом ProcessTrace . (Другой способ остановить обработку трассировки — возврат false из BufferCallback.)

При вызове этой функции перед возвратом ProcessTrace функция CloseTrace возвращает ERROR_CTX_CLOSE_PENDING. Код ERROR_CTX_CLOSE_PENDING указывает, что вызов функции CloseTrace выполнен успешно; Функция ProcessTrace перестанет обрабатывать события после обработки всех ранее очередных событий (ProcessTrace не получит никаких новых событий после вызова функции CloseTrace ). Вы можете вызвать функцию CloseTrace из обратного вызова BufferCallback, EventCallback или EventClassCallback .

До Windows Vista: Вы можете вызывать CloseTrace только после возврата ProcessTrace .

Примеры

Пример использования CloseTrace см. в разделе "Получение данных событий с помощью TDH".

Требования

Требование Ценность
Минимальный поддерживаемый клиент Windows 2000 Профессиональный [классические приложения | Приложения UWP]
минимальный поддерживаемый сервер Windows 2000 Server [классические приложения | Приложения UWP]
целевая платформа Виндоус
Header evntrace.h
Library AdvAPI32.Lib Sechost.lib в Windows 8.1 и Windows Server 2012 R2; Advapi32.lib в Windows 8, Windows Server 2012, Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista и Windows XP
DLL Sechost.dll в Windows 8.1 и Windows Server 2012 R2; Advapi32.dll в Windows 8, Windows Server 2012, Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista и Windows XP

См. также

OpenTrace

ProcessTrace