laotiu
驱动牛犊
驱动牛犊
  • 注册日期2003-05-26
  • 最后登录2005-04-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1355回复:3

分配内存问题

楼主#
更多 发布于:2004-10-09 10:44
下面是一个ioctrl函数,有相应的用户态函数调用这段代码,请问在没添加NdisAllocateMemory函数时程序是正常的,加上后一运行到这里就蓝屏,是分配内存方法不对吗?例子中还有内存锁,应该和锁没有关系吧?

PIO_STACK_LOCATION  pIrpSp;
   NTSTATUS            NtStatus = STATUS_SUCCESS;
  lclStatus=NdisAllocateMemory(buff1,20,0,noMaxAddr);
  if (NDIS_STATUS_SUCCESS  !=  lclStatus)
{
NDIS_STATUS_TO_NT_STATUS(lclStatus, _pNtStatus_tmp);
NtStatus = *_pNtStatus_tmp;

goto Done;
}
  //NdisZeroMemory(buff1, 20);
//NdisMoveMemory(
     //      buff1,
      //     "hello user space ",
      //     17
     //      );
 

      NdisMoveMemory(
           ioBuffer,
           "hello user space ",
           17
           );
BytesReturned=17;

Done:
NdisFreeMemory(buff1,20,0);
QQ:50528814,技术交流
laotiu
驱动牛犊
驱动牛犊
  • 注册日期2003-05-26
  • 最后登录2005-04-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-10-09 11:13
错误信息抓下来了
DRIVER_IRQL_NOT_LESS_OR_EQUAL,接着就重新启动了
QQ:50528814,技术交流
laotiu
驱动牛犊
驱动牛犊
  • 注册日期2003-05-26
  • 最后登录2005-04-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-10-09 11:42
换成数组后程序就正常了,但是还是不明白用内存分配为什么就不行
QQ:50528814,技术交流
laotiu
驱动牛犊
驱动牛犊
  • 注册日期2003-05-26
  • 最后登录2005-04-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-10-13 11:34
难道大家没有遇到这种问题?不过现在问题解决了,我没用ndis提供的内存分配函数了就正常了,其实我看头文件好象都差不多,另人费解的问题.还是觉得不爽
QQ:50528814,技术交流
游客

返回顶部