也许马克 · 鲁辛诺维奇知道,你可以告诉他。也许你可以在他的 Windows 内部书籍早于第六版中找到这些信息,这些书描述的关于堆栈的信息比他的 文章少。或者也许 Raymond Chen 知道原因,因为他写了一些关于 Windows 内部结构和历史的有趣的东西。他也可以回答你的问题,但你应该张贴一个建议到 意见箱。
但是现在我将尝试解释一些可能的原因,为什么微软使用 MSDN、 Mark 和 Raymond 的博客来选择这些值。
现在这些值主要用于向下兼容,因为作为参数传递给 WinAPI 函数的结构仍然在堆栈上分配。但是如果您不使用堆栈分配,那么线程的堆栈使用量将显著低于默认的1MB,正如 Hans Passant 所提到的那样,这是一种浪费。为了防止这种情况,操作系统只提交堆栈的第一页(4KB) ,如果在应用程序的 PE 头中没有指定其他页的话。其他页面根据需要分配。