Настройка уровней ведения журнала 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 следующим образом:
Запустите установку тестируемой чистой сборки.
Остановите процесс установки во время первой загрузки после установки в текстовом режиме (то есть перед настройкой режима графического пользовательского интерфейса).
Загрузите рабочую сборку, выбрав ее в меню загрузки, и войдите в систему с правами администратора.
Найдите кусты реестра (файлы) в папке D:\Winnt\System32\config. В этом случае необходимо изменить куст реестра в Software.sav.
В Windows 2000 запустите Regedt32, выберите окно "HKEY_LOCAL_MACHINE на локальном компьютере" и нажмите клавишу HKEY_LOCAL_MACHINE. Затем щелкните меню Реестр и выберите Загрузить Hive.
В Windows XP и более поздних версиях запустите RegEdit. Выделите HKEY_LOCAL_MACHINE, щелкните меню Файл и выберите Загрузить Hive.
Просмотрите файлы и выберите D:\Winnt\System32\config\software.sav. При появлении запроса на ввод имени ключа введите "_sw.sav".
Откройте ключ _sw.sav в разделе HKEY_LOCAL_MACHINE и выделите следующий ключ:
HKEY_LOCAL_MACHINE_sw.sav\Microsoft\Windows\CurrentVersion\Setup
В Windows 2000 откройте меню Безопасность , выберите Разрешения и предоставьте полный доступ администратору.
В Windows XP и более поздних версий откройте меню Правка , выберите Разрешения и предоставьте полный доступ администратору.
В Windows 2000 добавьте необходимые значения реестра в этот раздел, щелкнув Изменить и выбрав Добавить значение.
В Windows XP и более поздних версиях нажмите кнопку Изменить и выберите Создать значение DWORD.
Введите значение. Например, добавьте "0xFFFF", чтобы включить полное подробное ведение журнала.
Выберите HKEY_LOCAL_MACHINE\_sw.sav и выгрузите куст (с помощью меню Реестр в Windows 2000 или меню Файл в Windows XP и более поздних версиях) ключ The_sw.sav должен исчезнуть.
Скопируйте D:\Winnt\System32\config\software.sav в папку D:\Winnt\System32\config\software.
Перезагрузитесь и перейдите в программу установки.
Чтобы проверить это изменение, нажмите клавиши SHIFT+F10 в программе установки с графическим интерфейсом, а затем запустите regedit.exe и проверка уровень ведения журнала.