为什么CreateFileMapping和MapViewOfFile,而不仅仅是一个函数,结合两者的功能?

时间:2012-02-04 21:52:30

标签: winapi

有人可以解释一下这两个功能的基本原理,而不仅仅是一个具有组合功能的功能吗?

是否存在将这两者用作紧身衣的情况?

2 个答案:

答案 0 :(得分:4)

具有不同功能的原因是,除了定义统一参数(如页面和缓存的参数)之外,CreateFileMapping()可用于锁定大于可用地址空间的文件/范围。然后,MapViewOfFile()可以适当地放置和移动子范围,以使地址空间中的实际内容可用。

答案 1 :(得分:2)

因为这会禁用重要的使用方案,所以映射的文件大于您愿意花费的虚拟内存量。

或者有空。由于单个视图需要连续的地址范围,因此地址空间碎片会限制您可以创建的视图的大小。在32位版本的Windows上,大约650兆字节。完全依赖于加载的DLL和创建的堆数。创建多个视图也是完全合理的。

您可以轻松编写一个小辅助函数来组合这两个函数。