系统关闭原因代码

关闭原因代码由 dwReason 参数中的 ExitWindowsExInitiateSystemShutdownEx 函数使用。

系统将处理最多MAX_NUM_REASONS原因代码。 MAX_NUM_REASONS在 reason.h 中定义。

下面是主要原因标志。 它们指示常规问题类型。

常量/值 说明
SHTDN_REASON_MAJOR_APPLICATION
0x00040000
应用程序问题。
SHTDN_REASON_MAJOR_HARDWARE
0x00010000
硬件问题。
SHTDN_REASON_MAJOR_LEGACY_API
0x00070000
使用 InitiateSystemShutdown 函数而不是 InitiateSystemShutdownEx
SHTDN_REASON_MAJOR_OPERATINGSYSTEM
0x00020000
操作系统问题。
SHTDN_REASON_MAJOR_OTHER
0x00000000
其他问题。
SHTDN_REASON_MAJOR_POWER
0x00060000
电源故障。
SHTDN_REASON_MAJOR_SOFTWARE
0x00030000
软件问题。
SHTDN_REASON_MAJOR_SYSTEM
0x00050000
系统故障。

下面是次要原因标志。 它们修改指定的主要原因标志。 可以将任何次要原因与主要原因结合使用,但某些组合没有意义。

常量/值 说明
SHTDN_REASON_MINOR_BLUESCREEN
0x0000000F
蓝屏崩溃事件。
SHTDN_REASON_MINOR_CORDUNPLUGGED
0x0000000b
拔出。
SHTDN_REASON_MINOR_DISK
0x00000007

SHTDN_REASON_MINOR_ENVIRONMENT
0x0000000c
环境。
SHTDN_REASON_MINOR_HARDWARE_DRIVER
0x0000000d
司机。
SHTDN_REASON_MINOR_HOTFIX
0x00000011
热修复。
SHTDN_REASON_MINOR_HOTFIX_UNINSTALL
0x00000017
热修复卸载。
SHTDN_REASON_MINOR_HUNG
0x00000005
反应 迟钝。
SHTDN_REASON_MINOR_INSTALLATION
0x00000002
安装。
SHTDN_REASON_MINOR_MAINTENANCE
0x00000001
维护。
SHTDN_REASON_MINOR_MMC
0x00000019
MMC 问题。
SHTDN_REASON_MINOR_NETWORK_CONNECTIVITY
0x00000014
网络连接。
SHTDN_REASON_MINOR_NETWORKCARD
0x00000009
网络卡。
SHTDN_REASON_MINOR_OTHER
0x00000000
其他问题。
SHTDN_REASON_MINOR_OTHERDRIVER
0x0000000e
其他驱动程序事件。
SHTDN_REASON_MINOR_POWER_SUPPLY
0x0000000a
电源。
SHTDN_REASON_MINOR_PROCESSOR
0x00000008
处理器。
SHTDN_REASON_MINOR_RECONFIG
0x00000004
配置。
SHTDN_REASON_MINOR_SECURITY
0x00000013
安全问题。
SHTDN_REASON_MINOR_SECURITYFIX
0x00000012
安全修补程序。
SHTDN_REASON_MINOR_SECURITYFIX_UNINSTALL
0x00000018
安全修补程序卸载。
SHTDN_REASON_MINOR_SERVICEPACK
0x00000010
Service Pack。
SHTDN_REASON_MINOR_SERVICEPACK_UNINSTALL
0x00000016
Service Pack 卸载。
SHTDN_REASON_MINOR_TERMSRV
0x00000020
终端服务。
SHTDN_REASON_MINOR_UNSTABLE
0x00000006
稳定。
SHTDN_REASON_MINOR_UPGRADE
0x00000003
升级。
SHTDN_REASON_MINOR_WMI
0x00000015
WMI 问题。

以下可选标志提供有关事件的其他信息。

常量/值 说明
SHTDN_REASON_FLAG_USER_DEFINED
0x40000000
原因代码由用户定义。 有关详细信息,请参阅定义自定义原因代码。
如果此标志不存在,则原因代码由系统定义。
SHTDN_REASON_FLAG_PLANNED
0x80000000
计划关闭。 系统 (SSD) 文件生成系统状态数据。 此文件包含系统状态信息,例如进程、线程、内存使用情况和配置。
如果此标志不存在,则表示关闭计划外。 通知和报告选项由一组策略控制。 例如,登录后,如果已启用策略,系统将显示一个对话框,报告计划外关闭。 仅当在系统上启用了 SSD 策略时,才会创建 SSD 文件。 管理员可以使用 Windows 错误报告 将 SSD 数据发送到中心位置或 Microsoft。

备注

系统可识别以下组合。 该表指示关闭事件跟踪器中显示的字符串,并提供更详细的说明。 默认字符串为“找不到出于此原因的标题”。

组合 说明
SHTDN_REASON_MAJOR_APPLICATION |SHTDN_REASON_MINOR_HUNG “应用程序:无响应”计划外重启或关闭,用于对无响应的应用程序进行故障排除。
SHTDN_REASON_MAJOR_APPLICATION |SHTDN_REASON_MINOR_INSTALLATION |SHTDN_REASON_FLAG_PLANNED “应用程序:安装 (计划内) ”计划内重启或关闭以执行应用程序安装。
SHTDN_REASON_MAJOR_APPLICATION |SHTDN_REASON_MINOR_MAINTENANCE “应用程序:维护 (计划外) ”为应用程序提供服务的计划外重启或关闭。
SHTDN_REASON_MAJOR_APPLICATION |SHTDN_REASON_MINOR_MAINTENANCE |SHTDN_REASON_FLAG_PLANNED “应用程序:维护 (计划内) ”计划内重启或关闭以对应用程序执行计划内维护。
SHTDN_REASON_MAJOR_APPLICATION |SHTDN_REASON_MINOR_UNSTABLE “应用程序:不稳定”计划外重启或关闭,用于排查应用程序不稳定问题。
SHTDN_REASON_MAJOR_HARDWARE |SHTDN_REASON_MINOR_INSTALLATION “硬件:安装 (计划外) ”计划外重启或关闭以开始或完成硬件安装。
SHTDN_REASON_MAJOR_HARDWARE |SHTDN_REASON_MINOR_INSTALLATION |SHTDN_REASON_FLAG_PLANNED “硬件:安装 (计划内) ”计划内重启或关闭以开始或完成硬件安装。
SHTDN_REASON_MAJOR_HARDWARE |SHTDN_REASON_MINOR_MAINTENANCE “硬件:维护 (计划外) ”计划外重启或关闭以维护系统上的硬件。
SHTDN_REASON_MAJOR_HARDWARE |SHTDN_REASON_MINOR_MAINTENANCE |SHTDN_REASON_FLAG_PLANNED “硬件:维护 (计划内) ”计划内重启或关闭以维护系统上的硬件。
SHTDN_REASON_MAJOR_LEGACY_API “旧 API 关闭”此关闭由旧 版 InitiateSystemShutdown 函数启动。 应用程序应使用 InitiateSystemShutdownEx 函数。
SHTDN_REASON_MAJOR_OPERATINGSYSTEM |SHTDN_REASON_MINOR_HOTFIX “操作系统:热修复 (计划外) ”计划外重启或关闭以安装热修补程序。
SHTDN_REASON_MAJOR_OPERATINGSYSTEM |SHTDN_REASON_MINOR_HOTFIX |SHTDN_REASON_FLAG_PLANNED “操作系统:热修补程序 (计划) ”计划内重启或关闭以安装热修补程序。
SHTDN_REASON_MAJOR_OPERATINGSYSTEM |SHTDN_REASON_MINOR_RECONFIG “操作系统:重新配置 (计划外) ”计划外重启或关闭以更改操作系统配置。
SHTDN_REASON_MAJOR_OPERATINGSYSTEM |SHTDN_REASON_MINOR_RECONFIG |SHTDN_REASON_FLAG_PLANNED “操作系统:重新配置 (计划内) ”计划内重启或关闭以更改操作系统配置。
SHTDN_REASON_MAJOR_OPERATINGSYSTEM |SHTDN_REASON_MINOR_SECURITYFIX “操作系统:安全修复 (计划外) ”计划外重启或关闭以安装安全修补程序。
SHTDN_REASON_MAJOR_OPERATINGSYSTEM |SHTDN_REASON_MINOR_SECURITYFIX |SHTDN_REASON_FLAG_PLANNED “操作系统:安全修复 (计划) ”计划内重启或关闭以安装安全修补程序。
SHTDN_REASON_MAJOR_OPERATINGSYSTEM |SHTDN_REASON_MINOR_SERVICEPACK |SHTDN_REASON_FLAG_PLANNED “操作系统:Service Pack (计划内) ”计划内重启或关闭以安装 Service Pack。
SHTDN_REASON_MAJOR_OPERATINGSYSTEM |SHTDN_REASON_MINOR_UPGRADE |SHTDN_REASON_FLAG_PLANNED “操作系统:升级 (计划内) ”计划内重启或关闭以升级操作系统配置。
SHTDN_REASON_MAJOR_OTHER |SHTDN_REASON_MINOR_OTHER “其他 (计划外) ”计划外关闭或重启。
SHTDN_REASON_MAJOR_OTHER |SHTDN_REASON_MINOR_OTHER |SHTDN_REASON_FLAG_PLANNED “其他 (计划) ”计划关闭或重启。
SHTDN_REASON_MAJOR_OTHER |SHTDN_REASON_MINOR_HUNG “其他故障:系统无响应”系统无响应。
SHTDN_REASON_MAJOR_POWER |SHTDN_REASON_MINOR_CORDUNPLUGGED “电源故障:电源线拔下”计算机已拔下电源。
SHTDN_REASON_MAJOR_POWER |SHTDN_REASON_MINOR_ENVIRONMENT “电源故障:环境”发生停电。
SHTDN_REASON_MAJOR_SYSTEM |SHTDN_REASON_MINOR_BLUESCREEN “系统故障:停止错误”计算机显示蓝屏崩溃事件。
SHTDN_REASON_MAJOR_SYSTEM |SHTDN_REASON_MINOR_NETWORK_CONNECTIVITY “网络连接丢失 (计划外) ”由于网络连接问题,计算机需要关闭。
SHTDN_REASON_MAJOR_SYSTEM |SHTDN_REASON_MINOR_SECURITY “安全问题”由于安全问题,需要关闭计算机。

 

还可以定义自己的关闭原因并将其添加到注册表。 每个原因代码都应作为注册表值存储在以下项中:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Reliability\UserDefined\<default_system_language_ID>

此键包含以下形式的值名称: xxxxx;nnn;nnnnn. 分号分隔值名称的组件。

Xxxxx

以下一到五个控件标志 (不能) 使用其他字符。

标志 描述
P 计划关闭;否则为计划外关闭。
C 需要注释。 此标志必须与 S 一起使用。
B 需要 ID。 此标志必须与 D 一起使用。
S 显示预期的关闭对话框。 必须使用 S、D 或 S 和 D。
D 显示意外关闭对话框。 必须使用 S、D 或 S 和 D。

 

标志的使用顺序并不重要。 例如,CSP 指示计划关闭,其中显示预期的关闭对话框,并且需要注释。

nnn

主要原因。 此组件必须是 64-255 范围内的数字。 保留范围 0-63 供系统使用。

nnnnn

次要原因。 此组件必须在 0-65535 范围内。

自定义原因在用户界面中按主要原因编号排序,然后按次要原因编号排序。 任何两个自定义原因都不能使用相同的主要和次要原因,除非其中一个是计划原因,另一个是计划外的原因。 否则,系统将使用第一个实例并忽略其他实例。

每个注册表值的数据是两个字符串,用 \n\r 分隔。 第一个字符串是要在关闭对话框中显示并写入事件日志的标题字符串。 最大大小为 64 个字符。 标题字符串必须是唯一的。 自定义游戏不能与系统定义的标准游戏或其他自定义游戏匹配。 第二个字符串是要在关闭对话框中显示的说明字符串;它是可选的。 最大大小为 256 个字符。

要求

要求
最低受支持的客户端
Windows XP [桌面应用 |UWP 应用]
最低受支持的服务器
Windows Server 2003 [桌面应用 |UWP 应用]
标头
Reason.h