Бөлісу құралы:


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

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

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

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

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

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

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

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

Вы можете преобразовать сеанс трассировки глобального средства ведения журнала в сеанс трассировки ядра NT, что позволит выполнять трассировку ядра во время процесса загрузки системы. Для получения информации см. в разделе "Сеанс глобальной регистрации загрузки"

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

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

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

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

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

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

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

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

Записи реестра глобального логгера

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

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

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

Начало

REG_DWORD

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

0 = off, 1=on

РазмерБуфера

REG_DWORD

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

ТипЧасов

REG_DWORD

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

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

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

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

3 = часы цикла ЦП

EnableKernelFlags

REG_BINARY

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

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

FileCounter

REG_DWORD

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

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

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

FileMax

REG_DWORD

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

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

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

Имя файла

REG_SZ

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

FlushTimer

REG_DWORD

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

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

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

РежимФайлаЖурнала

REG_DWORD

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

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

МаксимальныеБуферы

REG_DWORD

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

MaximumFileSize

REG_DWORD

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

МинимальныеБуферы

REG_DWORD

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

Статус

REG_DWORD

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

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

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

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

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

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

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

Ценность Постоянный Описание

0x0

EVENT_TRACE_FILE_MODE_NONE

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

0x1

РЕЖИМ_ПОСЛЕДОВАТЕЛЬНЫЙ_СЛЕД_В_ФАЙЛЕ

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

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 (if left unchanged due to the technical nature, no changes needed)

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

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

0x100

Режим трассировки в реальном времени

Указывает сеанс трассировки в режиме реального времени.

0x200

EVENT_TRACE_DELAY_OPEN_FILE_MODE

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

0x400

EVENT_TRACE_BUFFERING_MODE

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

0x800

РЕЖИМ ЧАСТНОГО ЛОГГЕРА СОБЫТИЙ

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

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

Неприемлемо для сеанса трассировки Global Logger.

0x01000000

Использовать событие трассировки с разряженной памятью

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