Possible Duplicate:
Simulating a BlueScreen
你好,所以,
我试图在我的C代码中引入一个BSOD我的主要背景是Java,但很幸运的是,我曾接受过一些同事的指导,并且我正在帮助开发一个简单的C实用程序。
有两个部分:
1)写入硬盘(我完成了这个,还不错)
2)在发送最后一个SCSI写入命令后立即强制蓝色屏幕
现在您可能很容易就能看出程序的意图。
到目前为止我试过两件事:
1)外部调用pskill.exe(windows实用程序)以手动崩溃csrss.exe,由于csrss.exe是windows的必需服务,因此每次都强制蓝屏。这不起作用,因为速度不够快。对外部实用程序的调用花费了太长时间,因此我们需要内联代码来编译write-to-disk部分,以便足够快地使计算机崩溃。
2)使用windows.h API调用TerminateProcess:http://msdn.microsoft.com/en-us/library/ms686714%28v=vs.85%29.aspx
问题是此函数无法结束与系统相关的任务,因此无法关闭csrss.exe
这使我缺乏选择。我需要一个聪明的方法在我们自己的本地代码中杀死csrss.exe,而不需要外部调用,或者一个聪明的方法在内部代码中强制显示蓝屏,或者我需要一个非常简单的驱动程序,我可以加载并调用它,它将立即显示机器的蓝屏。可能短至1行呼叫KeBugCheckhttp://msdn.microsoft.com/en-us/library/ff551948.aspx
感谢您的时间和投入。

最佳答案

你最好的办法是按照你自己的建议编写一个调用KeBugCheck()的小驱动程序。您可以从Windows Driver Kit中获取最简单的示例,并将其缩减为赤骨。

关于c - 在C代码中强制蓝屏(是由于简单的驱动程序错误?),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5437806/

10-13 08:48
查看更多