blanker_123
驱动牛犊
驱动牛犊
  • 注册日期2008-06-18
  • 最后登录2011-03-21
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望80点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2312回复:3

调用MmProbeAndLockPages出现0x00000050错误蓝屏

楼主#
更多 发布于:2010-04-19 10:07
调用MmProbeAndLockPages出现0x00000050错误蓝屏

调用MmProbeAndLockPages,在MmProbeAndLockPages里面出现错误蓝屏,错误码为0x00000050(PAGE_FAULT_IN_NONPAGED_AREA),请

问有人遇到过吗,能否帮忙解答下,我的代码片段如下:

  if (cinfo->comp_info == NULL)
    cinfo->comp_info = (jpeg_component_info *) (*cinfo->mem->alloc_small)
            ((j_common_ptr) cinfo, JPOOL_IMAGE,
             cinfo->num_components * SIZEOF(jpeg_component_info));

  if (cinfo->comp_info == NULL)
  {
    DbgPrint("Allocate comp_info fail\n");
    return FALSE;
  }
  cominfoMdl = IoAllocateMdl(cinfo->comp_info,
                            cinfo->num_components * SIZEOF(jpeg_component_info),
                            FALSE,
                            FALSE,
                            NULL
                            );
  if (cominfoMdl == NULL)
  {
    DbgPrint("Allocate mdl fail\n");
    return FALSE;
  }

  MmBuildMdlForNonPagedPool(cominfoMdl);

  try
  {
    MmProbeAndLockPages(cominfoMdl, KernelMode, IoWriteAccess);  
  }
  except(EXCEPTION_EXECUTE_HANDLER)
  {
    DbgPrint("MmProbeAndLockPages fail\n");
    
    IoFreeMdl(cominfoMdl);
    return FALSE;
  }

  compptr = MmGetSystemAddressForMdlSafe(cominfoMdl, NormalPagePriority);
  if (compptr == NULL)
  {
    DbgPrint("MmGetSystemAddressForMdlSafe fail\n");
    MmUnlockPages(cominfoMdl);
    IoFreeMdl(cominfoMdl);
    return FALSE;
  }
Pegram
论坛版主
论坛版主
  • 注册日期2005-12-03
  • 最后登录2013-08-23
  • 粉丝13
  • 关注5
  • 积分1333分
  • 威望4717点
  • 贡献值1点
  • 好评度78点
  • 原创分0分
  • 专家分2分
沙发#
发布于:2010-04-22 11:09
except进去了吗?
《寒江独钓》与《竹林蹊径》的合作作者。精通USB开发,设计了CY001 USB驱动套件(http://bbs.driverdevelop.com/read.php?tid-119314.html)。
jally76
驱动牛犊
驱动牛犊
  • 注册日期2005-04-28
  • 最后登录2010-11-23
  • 粉丝0
  • 关注0
  • 积分59分
  • 威望590点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2010-04-22 18:26
 如果你的虚拟内存地址是分页内存地址,调用MmBuildMdlForNonPagedPool肯定会出问题。
blanker_123
驱动牛犊
驱动牛犊
  • 注册日期2008-06-18
  • 最后登录2011-03-21
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望80点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2010-04-26 12:08
except没有进去,我分配的是paged memory, 把MmBuildMdlForNonPagedPool拿掉了仍然会蓝屏
游客

返回顶部