wtgblue
驱动牛犊
驱动牛犊
  • 注册日期2006-11-13
  • 最后登录2008-08-25
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:1407回复:1

MmMapIoSpace的问题

楼主#
更多 发布于:2007-08-06 14:19
不知道大家有没有碰到这样的问题。源程序如下:
    paPhysAddr.QuadPart = (ULONGLONG)g_adwTDAddr[wTDNum];
        pvMappedAddr = MmMapIoSpace(paPhysAddr, sizeof(SDesc), FALSE);
            if (pvMappedAddr == NULL) {
                return FALSE;
            }
            else {
                memmove(pbyDataBuf + (wi * sizeof(SDesc)), pvMappedAddr, sizeof(SDesc));
                MmUnmapIoSpace(pvMappedAddr, sizeof(SDesc));
                wTDNum++;
            }
        }
我希望多次访问一个已分配的内存数组,这段程序理论上没问题,但MmUnmapIoSpace只能执行一次,第二次的时候就会出现错误,即phymem.c文件中的 PhysPageToZero (PHYSICAL_ADDRESS paPFN) 函数提示有错。
希望有人能给点提示,谢谢。

microsun
论坛版主
论坛版主
  • 注册日期2002-11-11
  • 最后登录2014-07-18
  • 粉丝0
  • 关注0
  • 积分1052分
  • 威望1159点
  • 贡献值0点
  • 好评度848点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-08-07 19:37
应该还是你数组里的地址不对吧.
学海无涯
游客

返回顶部