加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – 在堆栈上分配更多页面大小的缓冲区会破坏内存吗?

发布时间:2020-12-14 01:58:46 所属栏目:Windows 来源:网络整理
导读:在 Windows中,堆栈实现如下:指定的页面遵循已提交的堆栈页面.它的保护标志是守卫的.因此,当thead引用guared页面上的地址时,内存故障会上升,这会使内存管理器将受保护的页面提交到堆栈并清理页面的防护标志,然后它会保留一个新的页面作为保护. 但是,当我分配
在 Windows中,堆栈实现如下:指定的页面遵循已提交的堆栈页面.它的保护标志是守卫的.因此,当thead引用guared页面上的地址时,内存故障会上升,这会使内存管理器将受保护的页面提交到堆栈并清理页面的防护标志,然后它会保留一个新的页面作为保护.

但是,当我分配一个大小超过一页(4KB)的缓冲区时,没有发生预期的错误.为什么?

解决方法

优秀的问题(1).

有一个技巧,很少有人知道它(除了驱动程序编写者).

在堆栈上分配大缓冲区时 – 编译器会自动添加所谓的堆栈探测.这是一个额外的代码(通常在CRT中实现),它以所需的顺序逐页探测分配的区域.

编辑:

该函数是_chkstk.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读