0

有没有可以用来提供映射地址的函数?

我试图找出一种方法来利用大页面,即使我必须映射小文件。我知道我会浪费内存。或者,我可以使用 VirtualAlloc 来分配一个页面大小的块,然后我可以切块并将多个文件映射到其中。我假设,由于内存映射由虚拟内存子系统支持,因此这是不可能的 - 单个内存页面可能必须由单个文件支持。

我想在我做任何事情之前我会问。

4

1 回答 1

0

我怀疑这是不可能的,但只是一个想法:

地址分配决定属于MapViewOfFile,不属于CreateFileMapping。并且MapViewOfFile肯定NTDLL.DLL. 你可以弄清楚它调用了哪个函数来实际创建映射,谁知道呢——那个函数可能更灵活,并且允许使用KERNEL32. (例如,我们知道 PE 文件部分的映射方式是您无法模仿的MapViewOfFile)。

于 2013-01-28T20:49:52.287 回答