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

Winapi 如何使用Win32 API保护内存的特定区域?,winapi,memory-management,Winapi,Memory Management,假设我有一个100字节的缓冲区,如char*pBuffer=newchar[100]我想把它传递给第三方函数,其中包含特定的指令,它只写入上半部分,下半部分超出限制。我如何用Win32 API强制实现这一点 谢谢 PS:这个特殊的例子可能并不完美,但我很清楚我的问题。您需要使用它将最后一半标记为只读。由于VirtualProtect使用的是页面,而不是字节,因此在您的示例中,您需要PAGE\u SIZE+50字节,并调整pBuffer,使其符合您的要求。您需要使用将最后一半标记为只读。由于Vir

假设我有一个100字节的缓冲区,如
char*pBuffer=newchar[100]我想把它传递给第三方函数,其中包含特定的指令,它只写入上半部分,下半部分超出限制。我如何用Win32 API强制实现这一点

谢谢


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

您需要使用它将最后一半标记为只读。由于VirtualProtect使用的是页面,而不是字节,因此在您的示例中,您需要
PAGE\u SIZE
+50字节,并调整
pBuffer
,使其符合您的要求。

您需要使用将最后一半标记为只读。由于VirtualProtect使用的是页面,而不是字节,因此在您的示例中,您需要
PAGE\u SIZE
+50字节,并调整
pBuffer
,使其符合您的要求。

出于好奇,第三方应用程序是否必须访问阵列中的只读信息?出于好奇,第三方应用程序是否必须访问阵列中的只读信息?@mousepad还可以查看这篇关于Windows虚拟内存的概述文章。有点老了,但仍然很有趣@mousepad还可以查看这篇关于Windows虚拟内存的概述文章。有点老了,但仍然很有趣。