VirtualLock和堆栈变量

时间:2015-05-25 12:07:52

标签: c windows locking virtual-memory

我有一个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);
}

首先,这是不明智的吗?例如,这会导致堆栈出现问题吗?

其次,它是否具有防止写入分页文件的预期效果?

感谢。

0 个答案:

没有答案