为什么Windows NT线程具有单独的用户模式/内核模式堆栈?

时间:2014-08-07 08:25:16

标签: multithreading stack kernel windows-nt

来自Microsoft Press的

Windows Internals,第6版表示在Windows NT中,每个线程都有 2 堆栈:一个在用户模式下运行时使用,一个在内核中使用模式。

为什么会这样?似乎在系统调用中也可以使用用户模式堆栈。这种设计有一些优势吗?

1 个答案:

答案 0 :(得分:4)

主要原因是内核模式无法信任用户模式。如果内核使用用户模式堆栈,则某些其他用户模式线程可以观察该堆栈上的值并随意修改它们。恶意软件能够完全控制系统是微不足道的。