sun1979
驱动牛犊
驱动牛犊
  • 注册日期2002-11-19
  • 最后登录2005-05-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1323回复:5

mikeluo 有问题请教!

楼主#
更多 发布于:2003-02-20 17:58
 我修改passthru里的mpsend,自己分配了memory,buffer,重新组包后ndissend。现在的问题是传一个小文件就没问题,传了一个30多M的文件,快结束时就page fault.我觉的时释放memory,buffer,packet的问题。看到你以前回别人的一个贴子。
  发表于: 2003/1/6 - 22:49
如果ndissend返回的不是pending,就判断一下packet是不是你分配的,是就释放,不是就把状态传给系统,如果返回pending,就给系统返回pending,然后在sendcomplete里面做判断,同样处理


 

____________________

学而不思则罔,思而不学则殆
  

自己分配的memory,buffer是不是和packet 一样处理,还是ndissend完后直接释放掉就可以了。
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-02-21 09:08
packet和buffer memery是一样的,是你分配的你就释放,如果不是你分配的就让系统去释放。

你的这个状况应该是什么地方内存越界了吧,仔细检查函数的参数有没有问题,有没有该用指针的地方用了指针的指针一类的错误
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-02-21 10:10
你自己分配的buffer都是chain在packet上的,释放packet的时候才释放buffer,顺序是memery、buffer、packet
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
sun1979
驱动牛犊
驱动牛犊
  • 注册日期2002-11-19
  • 最后登录2005-05-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-02-21 11:21
NdisSend(&Status,
pAdapt->BindingHandle,
MyPacket);


if (Status != NDIS_STATUS_PENDING)
{
NdisIMCopySendCompletePerPacketInfo (Packet, MyPacket);

NdisFreeMemory(pVM,2000,0);
NdisFreeBuffer(pSPacketBuf);
NdisFreePacket(MyPacket);
}

我就是在源程序的基础上加了两行,按上面的代码释放的。可是我用softice跟踪了,发现Status一直都是pending,这时候是不是要在sendcomplete里释放memory,buffer.
如果在sendcomplete里释放,怎么释放哪?
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-02-21 11:29
用NdisQueryPacket 和NdisQueryBuffer来得到memery和buffer的指针,再释放,

不过应该先判断以下这个packet和buffer是你分配的,不是你分配的就不要释放,直接传给协议层去处理。
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
sun1979
驱动牛犊
驱动牛犊
  • 注册日期2002-11-19
  • 最后登录2005-05-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-02-21 14:53
真是郁闷!还是不行呀!急。。
能否贴一段MpSend的代码,不胜感激!
游客

返回顶部