Прочитать на английском

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


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

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

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

Режим Описание
EVENT_TRACE_FILE_MODE_NONE (0x00000000) То же, что и 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) Автоматически переключается на новый файл журнала, когда файл достигает максимального размера. Элемент MaximumFileSize структуры EVENT_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 байт дискового пространства для файла журнала заранее. Файл занимает все пространство во время ведения журнала как для циклических, так и для последовательных файлов журнала. При остановке сеанса файл журнала уменьшается до необходимого размера. Необходимо задать MaximumFileSize в EVENT_TRACE_PROPERTIES .
Вы не можете использовать режим для частных сессий трассировки событий.
Windows 2000: это значение не поддерживается.
EVENT_TRACE_NONSTOPPABLE_MODE(0x00000040) Сеанс ведения журнала не может быть остановлен. Этот режим поддерживается только Autologger. Этот параметр поддерживается в Windows Vista и более поздних версиях.
.
EVENT_TRACE_SECURE_MODE (0X00000080) Ограничивает тех, кто может записывать события в сеанс, только теми, у кого есть разрешения TRACELOG_LOG_EVENT. Этот параметр поддерживается в Windows Vista и более поздних версиях.
РЕЖИМ СОБЫТИЙ В РЕАЛЬНОМ ВРЕМЕНИ (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.
События не записываются в файл журнала или доставляются в режиме реального времени, и etW не очищает буферы. Чтобы получить моментальный снимок буфера, вызовите функцию 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) Создает сеанс трассировки событий в пользовательском режиме, который выполняется в том же процессе, что и его поставщик трассировки событий. Память для буферов поступает из памяти процесса. Процессы, которые не требуют данных из ядра, могут исключить издержки, связанные с переходами в режим ядра, с помощью сеанса трассировки частных событий.
Если поставщик зарегистрирован несколькими процессами, ETW добавляет идентификатор процесса в имя файла журнала, чтобы создать уникальное имя файла журнала. Например, если контроллер задает имена файлов журнала как 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 и к члену MaximumFileSize в EVENT_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 не заданы, ETW выберет значение по умолчанию в зависимости от того, поступает ли вызывающая сторона из сеанса 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 не заданы, ETW выберет значение по умолчанию в зависимости от того, поступает ли вызывающий из сеанса 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. Если параметр StartTracePropertiesLogFileMode включает этот флаг, логгер будет системным логгером. Этот параметр поддерживается в 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) Этот параметр добавляет буферы ETW в триажные дампы. Этот параметр поддерживается в Windows 8 и Windows Server 2012.