有关内存映射,大神请进,该怎么解决

有关内存映射,大神请进
lpMapAddress = MapViewOfFile( hMapFile,FILE_MAP_ALL_ACCESS, 0,0x20000,0x8c04);
我一共映射了0x8c04大小的空间,为什么我通过返回的lpMapAddress指针到内存中去查时,发现映射到内存的的字节数会大于ox8c04呢,大了1020个字节。

------解决方案--------------------
4k对齐
------解决方案--------------------
windows核心编程上描述:使用一块地址空间时会先预定再调拨(commit),前者要求预定的起始地址是分配粒度(64kb)的整数倍,后者要求大小是页面大小(4kb)的整数倍。

windows核心编程和MSDN都没有说映射的大小一定要是页面大小(4kb)的整数倍。这个参数如果传0,表示映射整个文件,但是这个文件的大小并不一定就是4kb的整数倍吧,只说了文件偏移的起始地址是分配粒度的整数倍。不知道这个函数内部实现是否会4kb对齐,不过我觉得不太可能会。