标签: multithreading stack kernel windows-nt
Windows Internals,第6版表示在Windows NT中,每个线程都有 2 堆栈:一个在用户模式下运行时使用,一个在内核中使用模式。
为什么会这样?似乎在系统调用中也可以使用用户模式堆栈。这种设计有一些优势吗?
答案 0 :(得分:4)
主要原因是内核模式无法信任用户模式。如果内核使用用户模式堆栈,则某些其他用户模式线程可以观察该堆栈上的值并随意修改它们。恶意软件能够完全控制系统是微不足道的。