设置 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表示的低 8 位设置常规设备安装操作的日志记录级别。 下一个更高八位(由掩码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 日志记录级别,请在文本模式设置和 GUI 模式安装之间的时间段内编辑注册表。 以下步骤介绍了该过程。 这些步骤假定你正在安装到 D:\Winnt ,并且在另一个分区上具有相同版本的 Windows 的工作内部版本。 按如下所示更改 SetupAPI 日志记录级别:

  1. 开始安装要测试的全新版本。

  2. 在文本模式安装 ((即在 GUI 模式安装) 之前)首次启动期间停止安装过程。

  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,单击“ 文件 ”菜单,然后选择“ 加载配置单元”。

  6. 浏览文件并选择 “D:\Winnt\System32\config\software.sav”。 当系统提示输入密钥名称时,输入“_sw.sav”

  7. 在 HKEY_LOCAL_MACHINE 下打开 _sw.sav 键,并突出显示以下键:

    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. 若要验证此更改,请在 GUI 模式安装程序中按 SHIFT+F10,然后运行regedit.exe并检查日志记录级别。