阅读:1312回复:1
关于释放包资源的困惑 版主进来看看我的理解对吗关于在发送包之后释放包资源,我是这么理解的: 1.由于底层MiniPort在发送完包后需要调用NidsMsendComplete,这样中间层接到命令,自己调用PtSendComplete,对不对? 2.如果对的话,那么,在mpsend里面,在调用NdisSend之后,如果返回不忙状态,即立刻释放自己分配的包资源,这样出现在PtSendComplete函数里面的Packet参数就是原来上层传下来的包,如果返回是Pending态,那么这个包就是我们自己分配的包资源了,是不是? 3.是不是只要调用NdisSend函数,Ndis就会调用NidsMsendComplete? 如果我自己做一个包来发送,而不是转发上层的包,那么,在我的包做好之后,调用NdisSend,如果返回不是Pending,即释放资源,如果是,则在自己的PtSendComplete里面释放,对不对? 如果是这样,那么我的疑惑是: 一:返回不是Pending,那么由于底层发送完毕后调用NidsMsendComplete,则会通知中间层调用PtSendComplete,那么,PtSendComplete里面我没有要返回上层的包,即Packet参数该是什么呢? 二:返回Pending,那么还是这个问题,在PtSendComplete里面释放了我的资源后,原始包是空的啊,怎么办呢? 是不是这个函数就返回空的包呢? 还请赐教!!! 如果我的理解不完全或完全错误,还请详细指明,改正,谢谢,相信搞清楚会对我们这些菜鸟们相当有帮助的,再次感谢!!! |
|
沙发#
发布于:2008-10-11 14:29
群:41945943,能帮你解决这个问题
|
|
|