2

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

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

4

1 回答 1

4

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

于 2014-08-10T20:37:37.670 回答