阅读:1448回复:9
急!!请教一个关于passthru的问题
在passthru中,MPSend/MPSendPacket例程根据上层传下来的数据分配MyPacket,调用NdisSend发送到下层。如果返回pending,就在PtSendComplete中释放MyPacket。PtSendComplete的传入参数Packet是不是就是Mypacket呢?如果MyPacket完全是自己构造的,应该如何释放?
小弟拜谢先! [编辑 - 6/22/04 by inbob] [编辑 - 6/22/04 by inbob] |
|
沙发#
发布于:2004-06-24 15:31
多谢asmsys大虾,小弟受教了!
|
|
板凳#
发布于:2004-06-24 13:21
PASSTHRU里搜索__LBFO(注意是两个下画线),ddk里也有说明,默认情况下PASSTHRU的该功能是关闭的。这里的帮定关系有点复杂,几句话说不清楚,靠你理解了。
|
|
地板#
发布于:2004-06-24 12:36
asmsys老大,不好意思,请问LBFO是什么?
小弟才入门,见笑了。 |
|
地下室#
发布于:2004-06-24 12:22
用一个IMD帮定多个网卡,用IF语句实现多个IMD的功能,操作起来更容易一些。
让IMD有选择的帮定某个网卡,要花点工夫,可以参考LBFO。 |
|
5楼#
发布于:2004-06-24 11:05
这个问题解决了,多谢两位大虾的指点。
小弟还有一个问题,中间层驱动对上层伪装成一个网卡,并和下层实际网卡绑定,在多网卡的机器上,可否存在多个IMD,让每个IMD只与一个实际的网卡绑定(每个IMD与所有的上层的协议都绑定),之所以有这个想法的原因,是想针对不同的网卡发出的数据包作某些预处理,借助路由的判断,让数据报从中间层开始分流。 如果这个想法成立,是不是在IMDs的安装上要注意些什么? 非常感谢! |
|
6楼#
发布于:2004-06-23 16:37
asmsys大虾,不好意思,我一直在线编辑帖子,发现有些想法不成熟,所以把第二贴删了,刚删完才发现大虾的回帖,不胜感激!小弟正在试验中,等有了问题还望大虾不吝赐教!
|
|
7楼#
发布于:2004-06-23 15:50
好像原passthru中PtSendPacket例程只需要释放包描述符,但是我自己构造的MyPacket包括缓冲区描述符和内存,这些东东需要自己在PtSendPacket例程中释放,是吗?
要遵循谁申请谁释放的原则,原来PtSendPacket没有释放,是因为哪个包不是它申请的。 |
|
8楼#
发布于:2004-06-23 11:02
PtSendComplete的传入参数Packet就是Mypacket.
|
|
9楼#
发布于:2004-06-23 10:52
按照构造顺序的相反顺序释放就可以了,每个构造Packet的函数都有与之对应的释放函数
|
|