【问题标题】:Win32: Any way to allocate memory range and have traps on specific pages?Win32:有什么方法可以分配内存范围并在特定页面上设置陷阱?
【发布时间】:2015-09-20 16:50:19
【问题描述】:

我想知道 Windows 是否公开了一个 API,允许用户模式进程分配一块地址空间,然后在该空间的特定页面上安装“陷阱”,这样如果这些页面被访问(读/写)通过进程,那么 Windows 将调用程序中的处理程序,例如通过调用回调函数或抛出程序可以处理的异常?我认为 Windows 应该可以通过设置页表来触发相关页面上的页面错误来实现这一点。然后,如果内存被访问,这将触发 CPU 的页面错误,页面错误处理程序可以将其反映回程序。但我不知道 Windows 是否真的提供了这个功能。

顺便问一下,Linux 支持这个功能吗?

【问题讨论】:

  • 使用 `VirtualProtect' 撤销对页面的访问,然后安装向量异常处理程序。

标签: windows cpu paging


【解决方案1】:

引用雷蒙德的回答/评论:

“使用 `VirtualProtect' 撤销对页面的访问,然后安装向量异常处理程序。”

【讨论】:

    猜你喜欢
    • 2011-12-02
    • 1970-01-01
    • 1970-01-01
    • 2012-05-09
    • 2010-11-12
    • 2013-04-22
    • 1970-01-01
    • 1970-01-01
    • 2020-10-19
    相关资源
    最近更新 更多