有人可以解释一下这两个功能的基本原理,而不仅仅是一个具有组合功能的功能吗?
是否存在将这两者用作紧身衣的情况?
答案 0 :(得分:4)
具有不同功能的原因是,除了定义统一参数(如页面和缓存的参数)之外,CreateFileMapping()
可用于锁定大于可用地址空间的文件/范围。然后,MapViewOfFile()
可以适当地放置和移动子范围,以使地址空间中的实际内容可用。
答案 1 :(得分:2)
因为这会禁用重要的使用方案,所以映射的文件大于您愿意花费的虚拟内存量。
或者有空。由于单个视图需要连续的地址范围,因此地址空间碎片会限制您可以创建的视图的大小。在32位版本的Windows上,大约650兆字节。完全依赖于加载的DLL和创建的堆数。创建多个视图也是完全合理的。
您可以轻松编写一个小辅助函数来组合这两个函数。