模拟蓝屏

我正在尝试制作一个能定期logging一大堆东西的程序。 具体的原因是,如果蓝屏,开发人员可以回去检查很多环境,看看那个时候发生了什么。

我的问题,是他们导致bluescreen的一种方式? 也许用一个windowsAPI调用(ZeroMemory也许?)。

任何人,如果你可以想办法引起一个蓝屏的电话,我会感激。

我正在testing这台计算机的目的是要采取像这样的东西哈哈。

顺便说一下,我使用的语言是C \ C ++。 谢谢

您可以配置一台机器在按键上崩溃(Ctrl-ScrollLock)

由于有些时候在某些使用USB键盘的系统上无法正常工作,因此您还可以获取Windows调试工具,安装内核调试程序,并使用“ .crash ”命令强制执行错误检查。

为了导致BSOD,以内核模式运行的驱动程序需要导致它。 如果你真的想这样做,你可以写一个驱动程序,暴露KeBugCheck usermode。

http://msdn.microsoft.com/en-us/library/ms801640.aspx

感谢下面的Andrew指出这个工具:

http://download.sysinternals.com/files/NotMyFault.zip

如果你杀了csrss进程,你会很快得到一个蓝屏。

如果你想模拟像bluescreen这样的硬碰撞,你几乎不得不抽出电源线。 不建议。

在发生崩溃的情况下,任何未保存到永久存储的内容都将丢失。 如果您想为了记录而模拟崩溃,请在记录器中写入“kill switch”,以停止记录。 现在,您可以通过查看日志记录来模拟崩溃,并确保在发生实际崩溃的情况下获得所需的数据。

首先,我建议你使用虚拟机来测试这个蓝屏 。 这将允许您保留一个备份,以防蓝屏会对系统造成一定的损害。 这里有一个关于如何简单地通过按下CTRL + SCROLLLOCK + SCROLLLOCK来产生BSOD的提示 。

有没有一个Windows API来生成一个? 不,根据这篇文章 。 不过,如果你打电话给某些API的无效数据,他们仍然可能导致内核崩溃,这将导致你的BSOD。

我不确定你会测试什么。 既然你的程序是周期性运行的,那么当系统正在运行的时候,检查信息是否按照你指定的频率转储就足够了。 您是否在蓝屏后查看信息? 根据你如何倾销它(以及你是否冲洗缓冲区),这可能不是必要的。

如果你不想写代码(驱动程序,IOCTL …),你可以使用DiskCryptor 。 请注意,不需要磁盘加密。

只需要安装驱动程序:

dcinst.exe -setup

然后使用DC控制台生成一个bsod:

dccon.exe -bsod