Сеанс трассировки глобального средства ведения журнала
Сеанс трассировки глобального средства ведения журнала записывает события, которые происходят во время загрузки до полной работы системы, например события, созданные драйверами устройств. Это зарезервированный сеанс трассировки, встроенный в 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 |
Выделение буферов сеанса трассировки из страничной памяти. По умолчанию буферы выделяются из непагебельной памяти. |