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


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

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

Синтаксис

ETW_APP_DECLSPEC_DEPRECATED ULONG WMIAPI CloseTrace(
  [in] TRACEHANDLE 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]
Целевая платформа Windows
Header evntrace.h
Библиотека 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