【发布时间】:2010-08-28 00:12:26
【问题描述】:
我正在使用 CreateFileMapping 和 MapViewOfFile 来尝试映射一个将近 1 GB 的文件。我在扩展文件时遇到了一些问题,所以我想我会尝试使用 1 GB 大小的 CreateFileMapping。这比实际文件大,但它适用于较小的文件。
似乎我可以几乎获得 1 GB 的映射,但不是一路。它比 1 GB 少了大约 16 MB。
我正在使用 SysInternals VMMap 程序来查看我的测试程序中各个部分的布局。这对我来说很奇怪。 VMMap 显示在我的地图之后有可用的虚拟内存空间!
为什么我不能使用它?
看起来有点像这样:
0x3F6E0000
0x406E0000
0x40000000 以上的内存区域有什么魔力吗?如果是这样,那它为什么让我用完它的 0x6E0000 呢?
顺便说一句,测试程序在 64 个单独的段中使用 MapViewOfFile,这就是为什么 0x3F6E0000 块没有那么大的原因。
【问题讨论】:
-
别给我们留下悬念,详情栏说什么?