设置 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 及更高版本的常规日志记录级别、设备安装日志记录级别和特殊日志记录标志。

常规日志记录级别 Meaning
0x00000000 使用默认设置(当前0x20)。
0x00000001 关闭(无设备安装日志记录)。
0x00000010 记录错误。
0x00000020 记录错误和警告。
0x00000030 记录错误、警告和其他信息。
0x00000040 在详细模式下记录错误、警告和其他信息。
0x00000050 在详细模式下记录错误、警告和其他信息,并为日志条目加上时间戳。
0x00000060 以详细模式记录错误、警告和其他信息,以及时间条目。 此外,所有条目都带有时间戳。
0x00000070 在详细模式下记录错误、警告、其他信息以及时间信息。 所有条目都带有时间戳。 包括可能导致系统变慢的其他消息,例如缓存命中数。
0x000000FF 指定可用的最详细日志记录。
设备日志记录级别 Meaning
0x00000000 使用默认设置(当前0x3000)。
0x00000100 关闭(无设备安装日志记录)。
0x00001000 日志错误。
0x00002000 记录错误和警告。
0x00003000 记录错误、警告和其他信息。
0x00004000 在详细模式下记录错误、警告和其他信息。
0x00005000 在详细模式下记录错误、警告和其他信息,并为这些条目加上时间戳。
0x00006000 详细模式下记录错误、警告和其他信息,以及时间条目。 此外,所有条目都带有时间戳。
0x00007000 以详细模式记录错误、警告和其他信息,以及时间消息。 所有条目都带有时间戳。 包括可能导致系统变慢的其他消息,例如缓存命中数。
0x0000FF00 指定可用的最详细日志记录。
特殊标志 Meaning
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. 在 2000 Windows,运行 Regedt32,选择“本地计算机上的HKEY_LOCAL_MACHINE”窗口,然后选择HKEY_LOCAL_MACHINE键。 然后单击“注册表”菜单,然后选择“加载配置单元”。

    在 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 并检查日志记录级别。