Win32:有什么方法可以分配内存范围并在特定页面上设置陷阱?

Win32: Any way to allocate memory range and have traps on specific pages?

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

顺便问一下,Linux 是否支持该功能?

引用 Raymond 的 answer/comment:

"Use `VirtualProtect' to revoke access to the page, and then install a vectored exception handler."