背景信息
当 Windows XP 推出时,我听说有一项测试功能可以手动导致BSOD(蓝屏死机)。我还听说这个应该在 XP Service Pack 2 中删除。它没有被删除。它也存在于 Vista、Windows 7 和所有更高版本的 Windows 中。要启用该功能,请导航到此注册表位置:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters
添加CrashOnCtrlScroll
为REG_DWORD
值为 1 的。
接下来,重新启动。最后,按任意按钮上的Right Ctrl+ Scroll Lock+Scroll Lock兼容 PS/2键盘。您将得到一个 BSOD。
我的问题
为什么这个功能仍然存在?
答案1
它允许中断内核调试器或生成内核模式转储文件。通常,当操作系统看起来已锁定并且甚至不会响应 CTRL+ALT+DELETE 时,专家会想要执行此操作,以便获取转储文件并调查哪个驱动程序有问题。
从逻辑上讲,这相当于使用错误检查 0xE2 (MANUALLY_INITIATED_CRASH) 调用内核 API KeBugCheck。还请注意,可以在不同的注册表项中设置 USB (kbdhid) 键盘驱动程序和 ps2 (i8042prt) 驱动程序的注册表值。有关此内容的更多信息以及自定义在知识库文章 244139。
由于这是在实际的键盘驱动程序中实现的,所以即使启用了它,我也不认为它会在 RDP 会话中起作用。
答案2
如果我们慷慨的话,它是否可能被用作强制崩溃转储以手动调查系统状态的过度热情的方式?(主要用于调试)
好的 - 这是一个非常奇怪的做法,但是......
答案3
我们把它称为复活节彩蛋。
恭喜.....您找到了!
答案4
我猜想微软在发布更新等之前会对其操作系统进行单元测试。大概其中一个测试是查看 BSOD 是否仍按应有的方式运行。为了进行更可靠的测试,对实际活动代码版本运行单元测试也是有意义的。