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


Настройка уровней ведения журнала 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 и проверьте уровень ведения журнала.