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


Сеанс трассировки глобального средства ведения журнала

Сеанс трассировки глобального средства ведения журнала записывает события, которые происходят во время загрузки до полной работы системы, например события, созданные драйверами устройств. Это зарезервированный сеанс трассировки, встроенный в Windows.

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

Так как средство глобального ведения журнала должно быть доступно в начале процесса загрузки операционной системы, оно запускается и настраивается с помощью записей реестра (в подразделе HKLM\SYSTEM\CurrentControlSet\Control\WMI\GlobalLogger ) вместо вызовов функций. После запуска глобальное средство ведения журнала ведет себя как обычный сеанс трассировки событий.

Сеанс трассировки Global Logger использует зарезервированное имя сеанса GlobalLogger. GUID элемента управления представлен константой GlobalLoggerGuid. Создайте сеанс трассировки глобального средства ведения журнала, а затем перезагрузите компьютер, чтобы запустить сеанс трассировки. Одновременно на компьютере может выполняться только один сеанс трассировки глобального средства ведения журнала.

Чтобы создать сеанс трассировки глобального средства ведения журнала, используйте tracelog. Он автоматически создает подраздел реестра и записи, в которые хранятся параметры сеанса трассировки. Сеанс трассировки глобального средства ведения журнала запускается при перезагрузке компьютера. Дополнительные сведения см. в разделе Синтаксис команды Tracelog.

Чтобы отформатировать сообщения трассировки из сеанса трассировки глобального средства ведения журнала, используйте Tracefmt с system.tmf— файлом формата сообщений трассировки , включенным в WDK.

Так как сеанс глобального средства ведения журнала активируется записями реестра, он запускается каждый раз, когда записи отображаются в реестре. Чтобы предотвратить запуск сеанса глобального средства ведения журнала при каждом запуске системы, задайте для записи Start значение 0 или удалите все записи реестра.

Сеанс трассировки глобального средства ведения журнала можно преобразовать в сеанс трассировки nt kernel Logger, таким образом трассировку ядра во время загрузки. Дополнительные сведения см. в разделе Сеанс глобального средства ведения журнала во время загрузки.

Поставщики трассировки, такие как драйверы в режиме ядра и приложения в пользовательском режиме, могут выполнять вход в сеанс трассировки глобального средства ведения журнала. Это позволяет отслеживать драйвер или другой поставщик трассировки во время загрузки системы. Дополнительные сведения см. в разделе Ведение журнала в сеансе глобального средства ведения журнала.

Ограничения сеанса трассировки глобального средства ведения журнала

Сеанс трассировки глобального средства ведения журнала очень полезен, но важно учитывать его ограничения:

Одновременно можно запустить только один сеанс глобального средства ведения журнала.

Сеанс глобального средства ведения журнала не отправляет уведомления о включении поставщикам.

Записи глобального реестра средства ведения журнала остаются в реестре и действуют до тех пор, пока вы не сбросите или не удалите их вручную или не выполните команду tracelog -remove . Пока вы не сбросите их, сеанс глобального средства ведения журнала запускается каждый раз при запуске системы.

Средство ведения журнала Windows ACPI навсегда включено для сеанса трассировки глобального средства ведения журнала. Сообщения трассировки от этого средства ведения журнала отображаются в журнале трассировки.

Если стандартный сеанс трассировки запускается, когда драйвер регистрируется в сеансе глобального средства ведения журнала, драйвер переключается и начинает ведение журнала в стандартном сеансе трассировки.

Записи глобального реестра средства ведения журнала

В следующей таблице показаны записи реестра, которые настраивают сеанс глобального средства ведения журнала. Эти записи находятся в подразделе HKLM\SYSTEM\CurrentControlSet\Control\WMI\GlobalLogger . Требуется только запись "Пуск ".

В дополнение к записям реестра в этой таблице можно также добавить подраздел ControlGUID в подраздел GlobalLogger , чтобы представить поставщик трассировки, например драйвер, который регистрируется в сеансе трассировки Global Logger. Дополнительные сведения см. в разделе Ведение журнала в сеансе глобального средства ведения журнала.

Ввод Тип данных Описание

Запуск

REG_DWORD

Если задано значение 1 (включено), сеанс глобального средства ведения журнала запускается при следующем запуске системы.

0 = выкл., 1 = вкл.

BufferSize

REG_DWORD

Задает размер каждого буфера (в КБ). Значение по умолчанию — 0x40 (64 КБ).

ClockType

REG_DWORD

Указывает таймер, используемый для меток времени сообщений трассировки.

Начиная с Windows Vista, значение по умолчанию — 1. В операционных системах до Windows Vista значение по умолчанию — 2.

1 = значение счетчика производительности (высокое разрешение)

2 = системный таймер

3 = время цикла ЦП

EnableKernelFlags

REG_BINARY

Преобразует сеанс глобального средства ведения журнала в сеанс трассировки nt kernel Logger и задает события, включенные в трассировку ядра.

Дополнительные сведения см. в разделе Сеанс глобального средства ведения журнала во время загрузки.

FileCounter

REG_DWORD

Хранит количество файлов журнала трассировки событий, созданных сеансами глобального средства ведения журнала.

Система увеличивает это значение, пока не достигнет значения FileMax. Затем он сбрасывает значение 0.

Этот счетчик не позволяет системе перезаписывать файл журнала трассировки глобального средства ведения журнала.

FileMax

REG_DWORD

Указывает максимальное количество файлов журнала трассировки событий, разрешенное в системе.

Когда число журналов трассировки достигает указанного максимума, система начинает перезаписывать журналы, начиная с самых старых.

Значение по умолчанию — 0, что означает, что максимальное значение отсутствует.

FileName

REG_SZ

Путь (необязательно) и имя файла журнала трассировки событий. Значение по умолчанию — %SystemRoot%\System32\LogFiles\WMI\trace.log.

FlushTimer

REG_DWORD

Указывает, как часто (в секундах) принудительно очищаются буферы трассировки. Эта принудительная очистка является дополнением к автоматической очистке, которая происходит при заполнении буфера и при остановке сеанса трассировки.

Значение по умолчанию — 0. По умолчанию буферы очищаются только при заполнении.

Минимальное время очистки — 1 секунда.

LogFileMode

REG_DWORD

Задает параметры сеанса журнала.

Поддерживается только в Windows Vista и более поздних версиях Windows.

MaximumBuffers

REG_DWORD

Задает максимальное количество буферов, которые могут быть выделены для сеанса. Значение по умолчанию — 0x19 (25).

MaximumFileSize

REG_DWORD

Указывает максимальный размер файла журнала трассировки событий. По умолчанию максимальный размер файла отсутствует.

MinimumBuffers

REG_DWORD

Указывает количество буферов, выделенных при запуске сеанса. Значение по умолчанию — 0x3.

Состояние

REG_DWORD

Хранит код возврата при попытке запустить сеанс трассировки глобального средства ведения журнала.

Если сеанс не удалось запустить, значением этой записи будет код ошибки Win32. Если сеанс запущен, значение этой записи будет ERROR_SUCCESS.

Эти записи реестра, которые вы создаете, остаются в реестре и действуют до тех пор, пока вы не удалите их или не измените их значения. Поэтому после запуска сеанса глобального ведения журнала используйте команду tracelog -remove GlobalLogger , чтобы задать для записи Start значение 0 и удалить другие записи реестра global logger. В противном случае сеанс глобального средства ведения журнала запускается при каждой перезагрузке компьютера, и результирующий файл журнала может очень увеличиться.

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

В следующей таблице показаны допустимые значения для записи реестра LogFileMode в подразделе HKLM\System\CurrentControlSet\Control\WMI\GlobalLogger . Эта запись используется для задания параметров для сеанса трассировки глобального средства ведения журнала, в том числе для сеансов трассировки в режиме реального времени, частных сеансов трассировки, циклического ведения журнала и буферизации (без журнала). Эта запись реестра поддерживается только в Windows Vista и более поздних версиях Windows.

Эта запись реестра соответствует элементу LogFileMode структуры EVENT_TRACE_PROPERTIES. Его значения соответствуют константам режима ведения журнала. Структура EVENT_TRACE_PROPERTIES и константы режима ведения журнала описаны в документации по Microsoft Windows SDK.

Эта таблица отображается здесь для отображения шестнадцатеричных значений констант. Используйте эти значения или сумму этих значений для представления константы в записи реестра LogFileMode .

Значение Константа Описание

0x0

EVENT_TRACE_FILE_MODE_NONE

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

0x1

EVENT_TRACE_FILE_MODE_SEQUENTIAL

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

0x2

EVENT_TRACE_FILE_MODE_CIRCULAR

Файлы журнала трассировки событий являются циклическими.

0x4

EVENT_TRACE_FILE_MODE_APPEND

Добавление сообщений трассировки в существующий файл журнала. Этот режим действителен только для последовательных файлов.

0x8

EVENT_TRACE_FILE_MODE_NEWFILE

Создайте новый файл журнала трассировки событий всякий раз, когда существующий файл достигает значения записи MaximumFileSize (см. таблицу выше).

0x20

EVENT_TRACE_FILE_MODE_PREALLOCATE

Резервирует место для файла журнала трассировки событий.

Допустимо только для EVENT_TRACE_FILE_MODE_SEQUENTIAL или EVENT_TRACE_FILE_MODE_CIRCULAR и недопустимо для EVENT_TRACE_FILE_MODE_NEWFILE.

0x40

EVENT_TRACE_NONSTOPPABLE_MODE

Вызов StopTrace не останавливает сеанс трассировки.

Эта функция не позволяет пользователям останавливать сеансы трассировки, необходимые системе для диагностики и настройки.

0x100

EVENT_TRACE_REAL_TIME_MODE

Задает сеанс трассировки в режиме реального времени.

0x200

EVENT_TRACE_DELAY_OPEN_FILE_MODE

Только для внутреннего использования.

0x400

EVENT_TRACE_BUFFERING_MODE

События сохраняются в буферах. Они никогда не записываются в файл журнала и не доставляются потребителю трассировки.

0x800

EVENT_TRACE_PRIVATE_LOGGER_MODE

Задает закрытый сеанс трассировки. Этот флаг недопустим для сеанса трассировки глобального средства ведения журнала.

0x1000

EVENT_TRACE_ADD_HEADER_MODE

Только для внутреннего использования.

0x2000

EVENT_TRACE_USE_KBYTES_FOR_SIZE

Интерпретируйте значение MaximumFileSize в КБ вместо МБ.

0x4000

EVENT_TRACE_USE_GLOBAL_SEQUENCE

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

По умолчанию сообщения трассировки не имеют порядковых номеров.

0x8000

EVENT_TRACE_USE_LOCAL_SEQUENCE

Создает локальные порядковые номера для сообщений трассировки. Эти числа уникальны в рамках сеанса трассировки.

По умолчанию сообщения трассировки не имеют порядковых номеров.

0x10000

EVENT_TRACE_RELOG_MODE

Только для внутреннего использования.

0x80000

EVENT_TRACE_KD_FILTER_MODE

Перенаправляет сообщения трассировки в отладчик ядра и задает размер буфера трассировки равным 3 КБ( максимальный размер буфера для отладчика).

0x1000000

EVENT_TRACE_MODE_RESERVED

Недопустимо для сеанса трассировки глобального средства ведения журнала.

0x01000000

EVENT_TRACE_USE_PAGED_MEMORY

Выделение буферов сеанса трассировки из страничной памяти. По умолчанию буферы выделяются из непагебельной памяти.