0

用户模式故障会导致蓝屏死机(BSOD) 吗?像双重释放内存这样的内存访问冲突是否可能导致蓝屏或只有内核模式异常(如驱动程序异常)导致 Windows 崩溃?

4

2 回答 2

3

不是直接的。

直接故障会导致异常和程序崩溃。要导致 BSOD,用户模式应用程序必须直接或间接与内核模式驱动程序通信,该驱动程序可能不够健壮,无法保护自己免受无效用户模式输入的影响。

于 2013-08-05T21:09:52.570 回答
0

大多数时候,没有,但有一个例外。

蓝屏(也称为错误检查)仅在内核模式出现问题(例如,DISPATCH_LEVEL 的驱动程序页面错误)或硬件错误时发生。

用户模式代码通常不能关闭整个系统(通常做一些不允许的事情会导致程序崩溃或产生某种错误)。

但是,错误检查 0xED可能直接由用户模式进程引起。如果csrss.exe进程被杀死(wininit.exe在 Windows Vista 和更高版本中也是如此),它将蓝屏计算机。

正如 Mark Russinovich 在 2005 年的文章Running Windows with No Services中解释的那样,可以通过第一次杀死来杀死winlogon.exe而不引起错误检查 0xC000021Asmss.exe

我们用 Smss.exe 启动 [杀死进程] 的原因是 Smss.exe 监视 Winlogon 的背面,它在引导过程中创建的进程,所以如果你先终止 Winlogon,Smss.exe 会感到不安并蓝屏机器并出现错误表示 Windows 登录过程意外终止。

这是用户模式应用程序可以直接导致蓝屏的唯一情况。

于 2017-02-08T01:47:22.270 回答