以下讨论 XP 版的 Passthru:如果我们在 PtReceivePacket() 返回了非 0 值,表示我们暂时不释放对包的所有权,等处理结束之后会调用 NdisReturnPacket() 通知刚才指示包的下层 Miniport 我们已经处理完了,可以释放包资源了,可是我...
全文
回复(17) 2002-12-10 14:02 来自版块 - NDIS网络接口开发
表情
edustPtReceive 跟 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)
mikeluoNDIS_STATUS_RESOURCES 是没有资源了,就是没有内存来存这些包了,所以就立刻返回了,不然的话不管是什么状态,协议层都把packet留下了(如果他想要的话),或者是丢弃了(如果他不想要),但是已经和你没有关系了(2002-12-10 14:36)
edust我看代码里的意思好象当包状态是 NDIS_STATUS_RESOURCES 的时候指示过程会立即结束,而不是的时候就代表上层协议一定保留了包的所有权,是这样吗? 为什么当包状态不是 NDIS_STATUS_RESOURCES 的时候上层就一定会保留包呢?(2002-12-10 14:31)
mikeluoMPReturnPacket里面调用的(2002-12-10 14:19)

返回顶部