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


Настройка уровней ведения журнала SetupAPI

Вы можете управлять объемом сведений, записываемых в журнал setupAPI, как для всех приложений установки устройств , так и для отдельных приложений установки устройств.

Чтобы изменить уровень сведений, записываемых в журнал SetupAPI для всех приложений установки устройств, создайте (или измените) следующее значение реестра:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Setup\LogLevel

Задав это значение (используя значения, перечисленные в приведенных ниже таблицах), можно выбрать уровень зарегистрированных ошибок, изменить уровень детализации ведения журнала или отключить ведение журнала. Вы также можете записывать данные в отладчик, а также в файл журнала.

Чтобы указать уровни ведения журнала для отдельных приложений установки устройств, создайте запись реестра в следующем разделе:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Setup\AppLogLevels

В этом разделе создайте имя значения, представляющее имя исполняемого файла приложения, и назначьте этому имени нужный уровень ведения журнала (используя значения, перечисленные в таблицах ниже), например service.exe=LoggingLevel.

Уровень ведения журнала является значением DWORD. Если это значение не указано или равно нулю, SetupAPI использует поведение по умолчанию, как показано в таблицах ниже.

Значение DWORD состоит из трех частей в формате 0xSSSSDDGG. Низкие восемь битов, представленные маской 0x000000FF, задают уровень ведения журнала для общих операций установки устройства. Следующие восемь битов, представленные маской 0x0000FF00, задают уровень ведения журнала для операций установки устройства. Самые высокие биты — это специальные флаги.

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

Общие уровни ведения журнала Значение
0x00000000 Используйте параметры по умолчанию (в настоящее время 0x20).
0x00000001 Выкл. (без ведения журнала установки устройства).
0x00000010 Регистрируются ошибки.
0x00000020 Регистрируются ошибки и предупреждения.
0x00000030 Регистрируются ошибки, предупреждения и другие сведения.
0x00000040 Регистрируются ошибки, предупреждения и другие сведения в подробном режиме.
0x00000050 Регистрируются ошибки, предупреждения и другие сведения в подробном режиме, а также записи с метками времени.
0x00000060 Регистрируются ошибки, предупреждения и другие сведения в подробном режиме, а также записи времени. Кроме того, все записи имеют метки времени.
0x00000070 Регистрируются ошибки, предупреждения и другие сведения в подробном режиме, а также сообщения о времени. Все записи имеют метки времени. Включаются дополнительные сообщения, которые могут замедлить работу системы, например попадания в кэш.
0x000000FF Указывает наиболее подробное ведение журнала.
Уровни ведения журнала устройств Значение
0x00000000 Используйте параметры по умолчанию (в настоящее время 0x3000).
0x00000100 Выкл. (без ведения журнала установки устройства).
0x00001000 Регистрируются ошибки.
0x00002000 Регистрируются ошибки и предупреждения.
0x00003000 Регистрируются ошибки, предупреждения и другие сведения.
0x00004000 Регистрируются ошибки, предупреждения и другие сведения в подробном режиме.
0x00005000 Регистрируются ошибки, предупреждения и другие сведения в подробном режиме, а также записи с метками времени.
0x00006000 Регистрируются ошибки, предупреждения и другие сведения в подробном режиме, а также записи времени. Кроме того, все записи имеют метки времени.
0x00007000 Регистрируются ошибки, предупреждения и другие сведения в подробном режиме, а также сообщения о времени. Все записи имеют метки времени. Включаются дополнительные сообщения, которые могут замедлить работу системы, например попадания в кэш.
0x0000FF00 Указывает наиболее подробное ведение журнала.
Специальные флаги Значение
0x08000000 (Windows XP и более поздние версии) Добавьте метку времени для всех записей журнала.
0x20000000 (Windows XP и более поздние версии) Не сбрасывайте данные журнала на диск после записи каждой записи. (Ведение журнала выполняется быстрее, но данные могут быть потеряны в случае сбоя системы.)
0x40000000 Записывайте записи журнала в хронологическом порядке, а не группирование записей.
0x80000000 Отправьте выходные данные в отладчик, а также в файл журнала.

Например, SetupAPI интерпретирует некоторые примеры значений LoggingFlags следующим образом:

  • 0x00000000 означает ведение журнала по умолчанию.

  • 0x0000FFFF означает подробное ведение журнала.

  • 0x8000FF00 означает подробные сведения об установке устройства в журнале как в файле журнала, так и в отладчике.

Чтобы изменить уровни ведения журнала по умолчанию SetupAPI во время чистой установки, измените реестр в период между настройкой текстового режима и настройкой режима графического пользовательского интерфейса. Ниже описана процедура. В этих шагах предполагается, что выполняется установка в D:\Winnt и имеется рабочая сборка той же версии Windows в другом разделе. Измените уровни ведения журнала SetupAPI следующим образом:

  1. Запустите установку тестируемой чистой сборки.

  2. Остановите процесс установки во время первой загрузки после установки в текстовом режиме (то есть перед настройкой режима графического пользовательского интерфейса).

  3. Загрузите рабочую сборку, выбрав ее в меню загрузки, и войдите в систему с правами администратора.

  4. Найдите кусты реестра (файлы) в папке D:\Winnt\System32\config. В этом случае необходимо изменить куст реестра в Software.sav.

  5. В Windows 2000 запустите Regedt32, выберите окно "HKEY_LOCAL_MACHINE на локальном компьютере" и нажмите клавишу HKEY_LOCAL_MACHINE. Затем щелкните меню Реестр и выберите Загрузить Hive.

    В Windows XP и более поздних версиях запустите RegEdit. Выделите HKEY_LOCAL_MACHINE, щелкните меню Файл и выберите Загрузить Hive.

  6. Просмотрите файлы и выберите D:\Winnt\System32\config\software.sav. При появлении запроса на ввод имени ключа введите "_sw.sav".

  7. Откройте ключ _sw.sav в разделе HKEY_LOCAL_MACHINE и выделите следующий ключ:

    HKEY_LOCAL_MACHINE_sw.sav\Microsoft\Windows\CurrentVersion\Setup
    

    В Windows 2000 откройте меню Безопасность , выберите Разрешения и предоставьте полный доступ администратору.

    В Windows XP и более поздних версий откройте меню Правка , выберите Разрешения и предоставьте полный доступ администратору.

  8. В Windows 2000 добавьте необходимые значения реестра в этот раздел, щелкнув Изменить и выбрав Добавить значение.

    В Windows XP и более поздних версиях нажмите кнопку Изменить и выберите Создать значение DWORD.

    Введите значение. Например, добавьте "0xFFFF", чтобы включить полное подробное ведение журнала.

  9. Выберите HKEY_LOCAL_MACHINE\_sw.sav и выгрузите куст (с помощью меню Реестр в Windows 2000 или меню Файл в Windows XP и более поздних версиях) ключ The_sw.sav должен исчезнуть.

  10. Скопируйте D:\Winnt\System32\config\software.sav в папку D:\Winnt\System32\config\software.

  11. Перезагрузитесь и перейдите в программу установки.

  12. Чтобы проверить это изменение, нажмите клавиши SHIFT+F10 в программе установки с графическим интерфейсом, а затем запустите regedit.exe и проверка уровень ведения журнала.