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


Константы режима ведения журнала

Следующие константы представляют возможные режимы ведения журнала для сеанса трассировки событий.

Константы используются в элементах LogFileModeструктур EVENT_TRACE_LOGFILE, EVENT_TRACE_PROPERTIES и TRACE_LOGFILE_HEADER . Эти константы определены в файле заголовка Evntrace.h .

Режим Описание
EVENT_TRACE_FILE_MODE_NONE (0x00000000) То же, что и EVENT_TRACE_FILE_MODE_SEQUENTIAL без указания максимального размера файла.
EVENT_TRACE_FILE_MODE_SEQUENTIAL (0x00000001) Записывает события в файл журнала последовательно; останавливается, когда файл достигает максимального размера. Не используйте с EVENT_TRACE_FILE_MODE_CIRCULAR или EVENT_TRACE_FILE_MODE_NEWFILE.
EVENT_TRACE_FILE_MODE_CIRCULAR (0x00000002) Записывает события в файл журнала. После достижения максимального размера файла самые старые события заменяются входящими событиями. Обратите внимание, что содержимое циклического файла журнала может отображаться не по порядку на многопроцессорных компьютерах.
Не используйте с EVENT_TRACE_FILE_MODE_APPEND, EVENT_TRACE_FILE_MODE_NEWFILE или EVENT_TRACE_FILE_MODE_SEQUENTIAL.
EVENT_TRACE_FILE_MODE_APPEND (0x00000004) Добавляет события в существующий файл последовательного журнала. Если файл не существует, он создается. Используйте только в том случае, если указано системное время для разрешения часов. В противном случае ProcessTrace вернет события с неправильными метками времени. При использовании EVENT_TRACE_FILE_MODE_APPEND значения bufferSize, NumberOfProcessors и ClockType должны быть явно указаны и должны быть одинаковыми как в средстве ведения журнала, так и в добавляемом файле.
Не используйте с EVENT_TRACE_REAL_TIME_MODE, EVENT_TRACE_FILE_MODE_CIRCULAR, EVENT_TRACE_FILE_MODE_NEWFILE или EVENT_TRACE_PRIVATE_LOGGER_MODE.
Windows 2000: Это значение не поддерживается.
EVENT_TRACE_FILE_MODE_NEWFILE (0x00000008) Автоматически переключается на новый файл журнала, когда файл достигает максимального размера. Необходимо задать элемент MaximumFileSizeEVENT_TRACE_PROPERTIES . Указанное имя файла должно быть форматируемой строкой (например, строка содержит %d, например c:\test%d.etl). Каждый раз при создании нового файла счетчик увеличивается и используется его значение, форматированная строка обновляется, а результирующая строка используется в качестве имени файла.
Этот параметр не допускается для частных сеансов трассировки событий и не должен использоваться для сеансов средства ведения журнала ядра NT.
Не используйте с EVENT_TRACE_FILE_MODE_CIRCULAR, EVENT_TRACE_FILE_MODE_APPEND или EVENT_TRACE_FILE_MODE_SEQUENTIAL.
Windows 2000: Это значение не поддерживается.
EVENT_TRACE_FILE_MODE_PREALLOCATE(0x00000020) Резервы EVENT_TRACE_PROPERTIES. MaximumFileSize байт дискового пространства для файла журнала заранее. Файл занимает все пространство во время ведения журнала как для циклических, так и для последовательных файлов журнала. При остановке сеанса файл журнала уменьшается до необходимого размера. Необходимо задать EVENT_TRACE_PROPERTIES. MaximumFileSize.
Режим нельзя использовать для сеансов трассировки частных событий.
Windows 2000: Это значение не поддерживается.
EVENT_TRACE_NONSTOPPABLE_MODE(0x00000040) Сеанс ведения журнала не может быть остановлен. Этот режим поддерживается только autologger. Этот параметр поддерживается в Windows Vista и более поздних версиях.
.
EVENT_TRACE_SECURE_MODE (0X00000080) Ограничивает пользователей, которые могут регистрировать события в сеансе, теми, у кого есть разрешение TRACELOG_LOG_EVENT . Этот параметр поддерживается в Windows Vista и более поздних версиях.
EVENT_TRACE_REAL_TIME_MODE (0x00000100) Доставляет события потребителям в режиме реального времени. События доставляются при очистке буферов, а не во время записи события поставщиком. Не следует включать режим реального времени, если нет потребителей для использования событий, так как вызовы событий журнала в конечном итоге завершатся сбоем при заполнении буферов. До Windows Vista, если события не потреблялись, события отменялись. Не указывайте более одного потребителя в режиме реального времени в одном процессе в Windows XP или Windows Server 2003. Вместо этого один поток будет потреблять события и распределять их среди других.
До Windows Vista: Не следует использовать режим реального времени, так как поддерживаемая частота событий гораздо ниже, чем скорость чтения из файла журнала (события могут быть удалены). Кроме того, порядок событий не гарантируется на компьютерах с несколькими процессорами. Режим реального времени больше подходит для событий типа уведомлений с низким трафиком.

Этот режим можно объединить с другими режимами файлов журнала; однако не используйте этот режим с EVENT_TRACE_PRIVATE_LOGGER_MODE. Обратите внимание, что при объединении этого режима с другими режимами файлов журнала буферы будут очищаться раз в секунду, в результате чего частично заполненные буферы записываются в файл журнала. Например, если вы используете буферы размером 64 КБ и скорость ведения журнала составляет 1 событие каждую секунду, служба будет записывать 64 кб/с в файл журнала.
EVENT_TRACE_DELAY_OPEN_FILE_MODE(0x00000200) Этот режим используется для задержки открытия файла журнала до возникновения события.
Примечание.
В Windows Vista или более поздних версиях этот режим неприменим и не должен использоваться.
EVENT_TRACE_BUFFERING_MODE (0x00000400) В этом режиме события записываются в циклический буфер памяти. События, записанные за пределы общего размера буфера, вытеснены самые старые события, оставшиеся в буфере. Размер этого буфера памяти является произведением MinimumBuffers и BufferSize (см . EVENT_TRACE_PROPERTIES). Как следствие этой формулы, любой буфер, использующий EVENT_TRACE_BUFFERING_MODE , будет игнорировать значение MaximumBuffers .
События не записываются в файл журнала и не доставляются в режиме реального времени, а трассировка событий Windows не очищает буферы. Чтобы получить snapshot буфера, вызовите функцию FlushTrace.
Этот режим особенно полезен для отладки драйверов устройств в сочетании с возможностью просмотра содержимого буферов в памяти с помощью расширения отладчика ядра WMITrace .
Не используйте с EVENT_TRACE_FILE_MODE_SEQUENTIAL, EVENT_TRACE_FILE_MODE_CIRCULAR, EVENT_TRACE_FILE_MODE_APPEND, EVENT_TRACE_FILE_MODE_NEWFILE или EVENT_TRACE_REAL_TIME_MODE.
EVENT_TRACE_PRIVATE_LOGGER_MODE (0x00000800) Создает сеанс трассировки событий пользовательского режима, который выполняется в том же процессе, что и его поставщик трассировки событий. Память для буферов поступает из памяти процесса. Процессы, которые не требуют данных из ядра, могут устранить издержки, связанные с переходами в режиме ядра, с помощью частного сеанса трассировки событий.
Если поставщик зарегистрирован несколькими процессами, трассировка событий Windows добавляет идентификатор процесса к имени файла журнала, чтобы создать уникальное имя файла журнала. Например, если контроллер задает имена файлов журнала как c:\mylogs\myprivatelog.etl, etW создает файл журнала как c:\mylogs\myprivatelog.etl_nnnn, где nnnn — это идентификатор процесса. Идентификатор процесса не добавляется к первому процессу, который регистрирует поставщика, он добавляется только к последующим процессам, которые регистрируют поставщика.
Сеансы трассировки частных событий имеют следующие ограничения.
  • Частный сеанс может записывать события только для потоков процесса, в котором он выполняется.
  • Для каждого процесса может быть до восьми частных сеансов.
  • Частные сеансы нельзя использовать с доставкой в режиме реального времени.
  • События, создаваемые частным сеансом, не включают время выполнения для режима ядра и инструкции в пользовательском режиме или сведения о времени ЦП на уровне потока.
Фильтры идентификаторов процессов и фильтры имен исполняемых файлов теперь можно передавать в API управления сеансами при запуске частных средств ведения журнала на уровне системы. Для достижения наилучших результатов в сценариях перекрестного процесса в каждую операцию управления во время сеанса следует передавать одни и те же фильтры, включая вызовы включения и разрешения поставщика. Обратите внимание, что фильтры имеют тот же формат, что и фильтры, используемые в EnableTraceEx2.
Этот режим можно использовать в сочетании с режимом EVENT_TRACE_PRIVATE_IN_PROC .
До Windows 10 версии 1703: Только LocalSystem, администратор и пользователи в группе администраторов, которые выполняются в процессе с повышенными привилегиями, могут создать частный сеанс. Если вы включили флаг EVENT_TRACE_PRIVATE_IN_PROC , любой пользователь может создать внутрипроцессный закрытый сеанс. Кроме того, в предыдущих версиях Windows на процесс может быть только один частный сеанс (если не указан режим EVENT_TRACE_PRIVATE_IN_PROC, в этом случае можно создать до трех закрытых сеансов внутри процесса).
До Windows Vista: Пользователи в группе Пользователи журнала производительности также могут создать частный сеанс.

Не используйте с EVENT_TRACE_REAL_TIME_MODE.
До Windows 7 и Windows Server 2008 R2: Не используйте с EVENT_TRACE_FILE_MODE_NEWFILE.
EVENT_TRACE_ADD_HEADER_MODE(0x00001000) Этот параметр добавляет заголовок в файл журнала.
Примечание.
В Windows Vista или более поздних версиях этот режим неприменим и не должен использоваться.
EVENT_TRACE_USE_KBYTES_FOR_SIZE(0x00002000) Используйте килобайты в качестве единицы измерения для указания размера файла. Единица измерения по умолчанию — мегабайты. Этот режим применяется к значению реестра MaxFileSize для сеанса AutoLogger и члену MaximumFileSizeEVENT_TRACE_PROPERTIES. Этот параметр поддерживается в Windows Vista и более поздних версиях.
EVENT_TRACE_USE_GLOBAL_SEQUENCE(0x00004000) Использует уникальные порядковые номера в сеансах трассировки событий. Этот режим применяется только к событиям, зарегистрированным с помощью функции TraceMessage . Дополнительные сведения см. в разделе TraceMessage для получения сведений об использовании.
EVENT_TRACE_USE_GLOBAL_SEQUENCE и EVENT_TRACE_USE_LOCAL_SEQUENCE являются взаимоисключающими.
Windows 2000: Это значение не поддерживается.
EVENT_TRACE_USE_LOCAL_SEQUENCE (0x00008000) Использует порядковые номера, уникальные только для отдельного сеанса трассировки событий. Этот режим применяется только к событиям, зарегистрированным с помощью функции TraceMessage . Дополнительные сведения см. в разделе TraceMessage для получения сведений об использовании.
EVENT_TRACE_USE_GLOBAL_SEQUENCE и EVENT_TRACE_USE_LOCAL_SEQUENCE являются взаимоисключающими.
Windows 2000: Это значение не поддерживается.
EVENT_TRACE_RELOG_MODE (0x00010000) Регистрирует событие без включения EVENT_TRACE_HEADER. Примечание:
Этот режим не следует использовать. Он зарезервирован для внутреннего использования.
Windows 2000: Это значение не поддерживается.
EVENT_TRACE_PRIVATE_IN_PROC (0x00020000) Используйте в сочетании с режимом EVENT_TRACE_PRIVATE_LOGGER_MODE для запуска закрытого сеанса. Этот режим обеспечивает, чтобы только процесс, который зарегистрировал GUID поставщика, может запустить сеанс средства ведения журнала с этим GUID.
Для каждого процесса можно создать до трех закрытых сеансов внутри процесса.
Этот параметр поддерживается в Windows Vista и более поздних версиях.
EVENT_TRACE_MODE_RESERVED(0x00100000) Этот параметр используется для отслеживания кучи и критических разделов. Этот параметр поддерживается в Windows Vista и более поздних версиях.
EVENT_TRACE_STOP_ON_HYBRID_SHUTDOWN(0x00400000) Этот параметр прекращает ведение журнала при гибридном завершении работы. Если ни EVENT_TRACE_STOP_ON_HYBRID_SHUTDOWN , ни EVENT_TRACE_PERSIST_ON_HYBRID_SHUTDOWN не указаны, трассировка событий Windows выберет значение по умолчанию в зависимости от того, поступает ли вызывающий объект из сеанса 0 или нет. Этот параметр поддерживается в Windows 8 и Windows Server 2012.
EVENT_TRACE_PERSIST_ON_HYBRID_SHUTDOWN(0x00800000) Этот параметр продолжает ведение журнала при гибридном завершении работы. Если ни EVENT_TRACE_STOP_ON_HYBRID_SHUTDOWN , ни EVENT_TRACE_PERSIST_ON_HYBRID_SHUTDOWN не указаны, трассировка событий Windows выберет значение по умолчанию в зависимости от того, поступает ли вызывающий объект из сеанса 0 или нет. Этот параметр поддерживается в Windows 8 и Windows Server 2012.
EVENT_TRACE_USE_PAGED_MEMORY (0x01000000) Использует выстраивную память. Этот параметр рекомендуется использовать, чтобы события не использовали непагрегированную память. Непагированные буферы используют непагрегированную память для буферного пространства. Так как непагрегированные буферы никогда не выгружаются, сеанс ведения журнала работает хорошо. Использование страничных буферов менее ресурсоемко.
Поставщики режима ядра и системные средства ведения журнала не могут регистрировать события в сеансах, определяющих этот режим ведения журнала.
Этот режим игнорируется, если задано EVENT_TRACE_PRIVATE_LOGGER_MODE .
Этот режим нельзя использовать в средстве ведения журнала ядра NT.
Windows 2000: Это значение не поддерживается.
EVENT_TRACE_SYSTEM_LOGGER_MODE(0x02000000) Этот параметр будет получать события от SystemTraceProvider. Если параметр Свойств StartTraceLogFileMode содержит этот флаг, средство ведения журнала будет системным. Этот параметр поддерживается в Windows 8 и Windows Server 2012.
EVENT_TRACE_INDEPENDENT_SESSION_MODE(0x08000000) Указывает, что на сеанс ведения журнала не должны влиять сбои EventWrite в других сеансах. Без этого флага, если событие не может быть опубликовано в одном из сеансов, для которых включен поставщик, событие не будет опубликовано ни в одном из сеансов. Если этот флаг установлен, ошибка записи события в один сеанс не приведет к тому, что функция EventWrite возвращает код ошибки в других сеансах.
Не используйте с EVENT_TRACE_PRIVATE_LOGGER_MODE.
Этот параметр поддерживается в Windows 8.1, Windows Server 2012 R2 и более поздних версий.
EVENT_TRACE_NO_PER_PROCESSOR_BUFFERING (0x10000000) Записывает события, зарегистрированные на разных процессорах, в общий буфер. Использование этого режима позволяет устранить проблему, когда события появляются не по порядку, когда события публикуются на разных процессорах с использованием системного времени. Этот режим также позволяет устранить проблему с циклическими журналами, которые могут удалять события на нескольких компьютерах-процессорах.
Если вы не используете этот режим и используете системное время, события могут выглядеть не по порядку на нескольких процессорах. Это связано с тем, что буферы ETW связаны с процессором, а не потоком. В результате, если поток переключается с одного ЦП на другой, буфер, связанный с последним ЦП, можно очистить на диск до того, который связан с прежним ЦП.
Если ожидается большой объем событий (например, более 1000 событий в секунду), этот режим использовать не следует.
Обратите внимание, что номер процессора не включается в событие .
Этот параметр поддерживается в Windows 7, Windows Server 2008 R2 и более поздних версиях.
EVENT_TRACE_ADDTO_TRIAGE_DUMP(0x80000000) Этот параметр добавляет буферы трассировки событий Windows в дампы для рассмотрения. Этот параметр поддерживается в Windows 8 и Windows Server 2012.