检查 VirtualAlloc 是否返回了 VirtualAddress

标签 c windows winapi memory-management

我想知道是否有可能确定一个虚拟地址(指针)是否属于以前的 VirtualAlloc 调用(如果可能的话不写入页面)。如果 VirtualFreeMEM_RELEASE 一起使用,它可以自动设置 dwSize 值。

最佳答案

是这样的还是我不明白这个问题?

MEMORY_BASIC_INFORMATION mbi;
void* p = NULL;
VirtualQuery(p, &mbi, sizeof(mbi));
BOOL bWasUsed = (mbi.State==MEM_FREE)? FALSE: TRUE; 

关于检查 VirtualAlloc 是否返回了 VirtualAddress,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14950789/

相关文章:

c++ - SCHANNEL TLS 服务器端无法 CertFindCertificateInStore

c# - SendMessage TreeView TVM_GETITEM 使该进程崩溃

winapi - 试图通过仪表板更新 hudson ,但现在它不起作用(Windows)

c - 为什么我可以使用 char 指针而不使用 malloc?

c - Windows 中进程的最短保证时间是多少?

c - valgrind 测试内存管理出错?

windows - Windows 的源代码树似乎无法使用有效的 SSH key

c++ - Directwrite:获取字体的高度

c - 计算字符串长度的函数不起作用

C - 从函数获取正确的指针并通过另一个函数打印