shdaianita
驱动牛犊
驱动牛犊
  • 注册日期2008-07-18
  • 最后登录2009-07-14
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望25点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1312回复:1

关于释放包资源的困惑 版主进来看看我的理解对吗

楼主#
更多 发布于:2008-08-05 09:44

关于在发送包之后释放包资源,我是这么理解的:

1.由于底层MiniPort在发送完包后需要调用NidsMsendComplete,这样中间层接到命令,自己调用PtSendComplete,对不对?

2.如果对的话,那么,在mpsend里面,在调用NdisSend之后,如果返回不忙状态,即立刻释放自己分配的包资源,这样出现在PtSendComplete函数里面的Packet参数就是原来上层传下来的包,如果返回是Pending态,那么这个包就是我们自己分配的包资源了,是不是?


3.是不是只要调用NdisSend函数,Ndis就会调用NidsMsendComplete?
  如果我自己做一个包来发送,而不是转发上层的包,那么,在我的包做好之后,调用NdisSend,如果返回不是Pending,即释放资源,如果是,则在自己的PtSendComplete里面释放,对不对?

如果是这样,那么我的疑惑是:
一:返回不是Pending,那么由于底层发送完毕后调用NidsMsendComplete,则会通知中间层调用PtSendComplete,那么,PtSendComplete里面我没有要返回上层的包,即Packet参数该是什么呢?
二:返回Pending,那么还是这个问题,在PtSendComplete里面释放了我的资源后,原始包是空的啊,怎么办呢?

是不是这个函数就返回空的包呢?

还请赐教!!!

如果我的理解不完全或完全错误,还请详细指明,改正,谢谢,相信搞清楚会对我们这些菜鸟们相当有帮助的,再次感谢!!!
NDISVCBoy
驱动牛犊
驱动牛犊
  • 注册日期2008-10-11
  • 最后登录2008-10-15
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望8点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-10-11 14:29
群:41945943,能帮你解决这个问题
驱网无线,快乐无限
游客

返回顶部