可以控制写入 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 日志记录级别:
开始安装要测试的全新构建。
在文本模式设置(即 GUI 模式设置之前)的第一次启动过程中停止设置过程。
通过从启动菜单选择可用的生成启动到该生成,然后以管理员身份登录。
在 D:\Winnt\System32\config 中找到注册表配置单元(文件)。在这里,您需要在 Software.sav 中修改注册表配置单元。
在 2000 Windows,运行 Regedt32,选择“本地计算机上的HKEY_LOCAL_MACHINE”窗口,然后选择HKEY_LOCAL_MACHINE键。 然后单击“注册表”菜单,然后选择“加载配置单元”。
在 Windows XP 及后续版本中,运行 RegEdit。 选中 HKEY_LOCAL_MACHINE,单击“文件”菜单,然后选择“加载配置单元”。
浏览文件并选择 D:\Winnt\System32\config\software.sav。 当系统提示输入密钥名称时,输入“_sw.sav”
打开HKEY_LOCAL_MACHINE下的_sw.sav密钥,并突出显示以下键:
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。
重新启动并继续进入设置。
若要验证此更改,请在 GUI 模式安装程序中按 Shift+F10,然后运行 regedit.exe 并检查日志记录级别。