为什么Windows仍然在Ctrl + Scroll + Scroll“功能”上有BSOD?


16

当Windows XP问世时,我听说有一个测试功能可以手动导致BSOD(蓝屏死机)。我还听说这应该在XP Service Pack 2中删除。它没有被删除,它也在Vista和Windows 7中。要启用此导航到注册表中的此位置:

HKEY_LOCAL_MACHINE \系统\ CurrentControlSet \服务\ i8042prt \参数

并添加CrashOnCtrlScroll作为REG_DWORD具有1的值。

现在重新启动并按Ctrl+ Scroll Lock+ Scroll Lock,您将获得BSOD。

为什么这个功能还在这里?


3
我想你需要向微软询问一下这个问题。
DLH于2009年

19
由于它需要一个强制性的注册表黑客,我不认为将它留在系统中是一个缺点。没有人可能会错误地触发它。
sangretu

如果从RDP会话触发,键序列也会起作用吗?
Axxmasterr 2009年

4
由于它有一个合法的用例,对于实际编写和调试内核和设备驱动程序的人来说很重要,我不希望看到它被删除。启用它需要对HKLM进行写访问,即使启用了,您只能获得BSOD。
RBerteig

2
@Axxmaster:不,它不会因为键盘的设备驱动程序中实现了键序列。这些不需要甚至在RDP会话中使用。
乔伊

Answers:


34

它允许中断内核调试器或生成内核模式转储文件。通常,当操作系统看起来已锁定时,专家会希望执行此操作,甚至不会响应CTRL + ALT + DELETE以获取转储文件并调查哪个驱动程序遇到问题。

使用错误检查0xE2(MANUALLY_INITIATED_CRASH)调用内核API KeBugCheck在逻辑上是相同的。另请注意,可以在USB(kbdhid)键盘驱动程序与ps2(i8042prt)驱动程序的不同reg键中设置reg值。有关于此的更多信息,并自定义KB文章244139中使用的键盘

由于这是在实际的键盘驱动程序中实现的,所以即使启用了RDP会话,我也不认为这会起作用。


1
对于那些需要在某个时刻陷入调试器的硬件和驱动程序开发人员来说也是如此。我绝对认为这应该是公认的答案。
乔伊2010年

6

如果我们慷慨,它是否可能被用作强制崩溃转储手动调查系统状态的过度热情方式?(主要用于调试)

好的 - 这是一种非常奇怪的方式,但......


7
这确实非常慷慨。它可能是一种旨在允许软件崩溃系统以在严重危害的情况下“止血”的方法。强制系统关闭会阻止任何人窃取数据。
Axxmasterr 2009年

5

我们称之为复活节彩蛋。

恭喜.....你找到了!


3

这听起来像是不值得从代码库中删除的时间和精力。


不,它被保留,因为它是一个宝贵的诊断功能。
Synetech

3

这听起来像一个有趣的恶作剧,真的。


5
当我的老师来的时候,我常常用它来学校,我正在玩一个完整的游戏。
Kredns

@Lucas:等等,您在学生所在的地方拥有管理员权限?:O
Joey 2010年

@Johannes:是的。这非常松懈。
Kredns 2010年

spoulson,显然你不是程序员,或者至少不是低级调试器。
Synetech

2

我想,微软会在发布更新之前对他们的操作系统进行单元测试。据推测,其中一项测试就是看看BSOD是否仍然能够正常运行。在真正的活动代码版本上运行单元测试以获得更可靠的测试也是有意义的。


这适用于用户(嗯,程序员)。
Synetech

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.