我有一个C DLL,在其他变量中声明堆栈上的大缓冲区(大约4K)。为了防止缓冲区被写入分页文件I VirtualLock它。例如:
__declspec(dllexport) int __stdcall MyCall(...)
{
UCHAR bigBuffer[4096];
int vlocked = 0;
...
vlocked = VirtualLock(bigBuffer,sizeof(bigBuffer));
... do stuff ...
if (vlocked)
{
VirtualUnlock(bigBuffer,sizeof(bigBuffer));
}
...
return (0);
}
首先,这是不明智的吗?例如,这会导致堆栈出现问题吗?
其次,它是否具有防止写入分页文件的预期效果?
感谢。