zoukankan      html  css  js  c++  java
  • All bytes must be within the maximum size specified by CreateFileMapping

    MapViewOfFile 中

    误区1,dwNumberOfBytesToMap 必须是64K的整数倍,也就是系统内存分配粒度的整数倍

    实际:MSDN中并没有写这个要求,而是仅指定了dwFileOffsetLow 必须是64K的整数倍;实验证明确实不需要

    问题2, All bytes must be within the maximum size specified by CreateFileMapping

    实际:“所有的字节必须在CreateFileMapping指定的最大尺寸之内”,

    也就是说dwFileOffsetHigh/Low  + dwNumberOfBytesToMap 不能超过dwMaximumSizeHigh/Low

    如果超过了,函数会失败,返回NULL

    也就是说,不能映射不存在的内容,——和CreateFileMapping不能映射0字节文件一致

    也就是说,不存在MapViewOfFile实际返回内存长度 不等于 dwNumberOfBytesToMap 的情况

    实验证明上述内容

    注意3,MapViewOfFile能成功,需要依赖系统中连续的、未被预定的内存长度,所以有失败的可能。

    实际:映射内存越长,失败几率越大,所以不要想当然的用。要准备分页的方式分部分映射

  • 相关阅读:
    1
    最大子串
    线段树
    mybatis分页插件
    springmvc下载文件
    获“领跑衫”感言
    finnal 评论 II
    用户使用报告
    事后诸葛亮会议 (尸体解剖)
    final阶段成员贡献分
  • 原文地址:https://www.cnblogs.com/kevinzhwl/p/3878863.html
Copyright © 2011-2022 走看看