windows底层的内存分配函数一共有几种?

C/C++本地代码调试

windows底层的内存分配函数一共有几种?


chena_cpp 2015-10-29, 12:44 下午
我知道的就HeapAlloc,GlobalAlloc,LocalAlloc,VirtualAlloc,VirtualAllocEx。
前面3个分配的都是属于堆的。

我现在在调试一个内存异常的程序,具体表现是使用某个特定版本的gpu驱动导致内存多了800M,换一个驱动内存正常了。
我想看看这800M内存到底哪里分配的。

我用NtQueryVirtualMemory遍历之后发现这800M不属于Heap,是private data(vmmap的分法),我看文档说这部分应该是
直接用VirtualAlloc或者VirtualAllocEx分配的,但是我hook了这两个函数,发现不是,没有这么多内存通过这两个函数分配。

多出来的这800M内存的地址我看了,从10020000-84840000都有,都是几M-十几M的,我程序是64位的。
怎么样才能知道这800M内存到底哪里分配的?

谢谢。

Powered by Community Server Powered by CnForums.Net