只是好奇这里:是否可以使用Windows XP / Vista下的.net托管代码调用Windows蓝屏死机?如果可能,示例代码可以是什么?
只是为了记录,这不是为了任何恶意的目的,我只是想知道将要采取什么样的代码实际杀死操作系统指定。
@H_404_3@@H_404_3@
键盘的东西可能是一个很好的选择,但如果你需要通过代码来做,继续阅读…
你根本不需要任何东西,所以你需要做的就是找到KeBugCheck(Ex)函数并调用它。
http://msdn.microsoft.com/en-us/library/ms801640.aspx
http://msdn.microsoft.com/en-us/library/ms801645.aspx
对于手动启动的崩溃,您要使用0xE2(MANUALLY_INITIATED_CRASH)或0xDEADDEAD(MANUALLY_INITIATED_CRASH1)作为错误检查代码。它们被明确保留用于该用途。
但是,发现功能可能会有点棘手。 Windows DDK可能有帮助(检查Ntddk.h) – 我目前没有可用的,现在似乎找不到决定性的信息 – 我认为这是在ntoskrnl.exe或ntkrnlpa.exe,但我“不确定,目前还没有工具来验证它。
您可能会发现,只需编写一个简单的C应用程序或调用该函数的东西,然后再运行即可。
请注意,我假设Windows不会阻止您从用户空间访问该功能(.NET可能有一些特殊规定)。我没有自己测试
@H_404_3@