版块
论坛
喜欢
话题
应用
搜索
登录
注册
edust的个人空间
访问量
0
新鲜事
帖子
资料
http://bbs3.driverdevelop.com/index.php?m=space&uid=21033
再问一个关于 Passthru 理解上的问题,会者不难[30 分]
以下讨论 XP 版的 Passthru:如果我们在 PtReceivePacket() 返回了非 0 值,表示我们暂时不释放对包的所有权,等处理结束之后会调用 NdisReturnPacket() 通知刚才指示包的下层 Miniport 我们已经处理完了,可以释放包资源了,可是我...
全文
回复
(
17
)
2002-12-10 14:02
来自版块 -
NDIS网络接口开发
◆
◆
表情
告诉我的粉丝
提 交
edust
:
PtReceive 跟 ReturnPacket 没关系吧?你说的是 PtReceivePacket ?
(2002-12-10 15:11)
回复
bingjie
:
在Miniport调用NdisIndicateReceivePacket时,需要预先设定packet的status域,当设为STATUS_SUCESS时表示该Packet可以被pending,当设为STATUS_RESOURCES时要求上层的协议必须立即处理该数据。所以在PTRe...
(2002-12-10 15:06)
回复
edust
:
可是我从 Passthru 注释里看到的意思好象是说我们自己调用 ReturnPacket 啊,好象这样也说的通。
(2002-12-10 14:50)
回复
edust
:
不然的话不管是什么状态,协议层都把packet留下了(如果他想要的话),或者是丢弃了(如果他不想要),但是已经和你没有关系了 怎么会跟我没关系了呢?我还等着它的通知来释放资源啊! 你的意思它就算是丢掉了也会调用我们的 ReturnPacketHandler? ...
(2002-12-10 14:43)
回复
mikeluo
:
NDIS_STATUS_RESOURCES 是没有资源了,就是没有内存来存这些包了,所以就立刻返回了,不然的话不管是什么状态,协议层都把packet留下了(如果他想要的话),或者是丢弃了(如果他不想要),但是已经和你没有关系了
(2002-12-10 14:36)
回复
edust
:
我看代码里的意思好象当包状态是 NDIS_STATUS_RESOURCES 的时候指示过程会立即结束,而不是的时候就代表上层协议一定保留了包的所有权,是这样吗? 为什么当包状态不是 NDIS_STATUS_RESOURCES 的时候上层就一定会保留包呢?
(2002-12-10 14:31)
回复
mikeluo
:
MPReturnPacket里面调用的
(2002-12-10 14:19)
回复
« 上一页
1
2
edust
加关注
写私信
0
关注
0
粉丝
453
帖子
返回顶部