带有 PAGE_EXECUTE_WRITECOPY 标志的 VirtualProtect

VirtualProtect with PAGE_EXECUTE_WRITECOPY flag

当我尝试在内存页上调用 VirtualProtect 以将其保护标志设置为 PAGE_EXECUTE_WRITECOPY 时,它失败了,错误代码为 ERROR_INVALID_PARAMETER。如果我用 PAGE_EXECUTE_READPAGE_EXECUTE_READWRITE 调用它,它会成功。

它失败并显示 PAGE_EXECUTE_WRITECOPY 是否有原因?

标志PAGE_EXECUTE_WRITECOPY 仅对映射文件and/or 剖面视图的区域有效。如果您尝试将该标志应用于正常的内存区域,例如手动分配的虚拟内存或 heap/stack,它将失败。