如何使用Win32 API保护特定的内存区域?

时间:2011-03-20 17:57:24

标签: winapi memory-management

假设我有一个100字节的缓冲区,如char *pBuffer = new char[100];所示,我希望将它传递给第三方函数,并且具有特定指令,只写入上半部分,下半部分超出限制。如何使用Win32 API强制执行该操作?

感谢。

PS:这个特殊的例子可能不完美,但我很清楚我的问题。

1 个答案:

答案 0 :(得分:3)

您需要使用VirtualProtect将后半部分标记为只读。由于VirtualProtect可以处理页面而不是字节,因此在您的示例中,您需要VirtualAlloc PAGE_SIZE + 50个字节,并调整pBuffer以符合您的要求。