阅读:1577回复:4
ProtocolReceivePacket和NdisReturnPacket的问题!
在Win2K 的ddk中的1.5.1.1 Implementing a ProtocolReceivePacket Handler in an Intermediate Driver部分介绍ProtocolReceivePacket函数时说此函数的第4步到用NdisReturnPacket返回资源,也就是说在ProtocolReceivePacket中要调用NdisReturnPacket。但在NdisReturnPacket函数的Comments的最后又说“NdisReturnPacket不能从ProtocolReceivePacket中调用”。在ProtocolReceivePacket函数的Commnets中又说“如果ProtocolReceivePacket自己不调用NdisReturnPacket,则.....”
也就是ProtocolReceivePacket还是可以调用NdisReturnPacket的。 我初学NDIS,总是在困惑中挣扎,希望各位指点迷津! |
|
沙发#
发布于:2004-08-25 09:53
ProtocolRececivePacket和NdisReturnPacket到底是什么关系?
|
|
板凳#
发布于:2004-08-26 12:26
DDK中关于NdisReturnPackets的说明:
An NDIS intermediate driver should call NdisReturnPackets as soon as possible after its ProtocolReceivePacket or ProtocolCoReceivePacket function has returned control. Otherwise, both the underlying driver that supports multipacket receive indications and the bound protocol driver that processes them suffer a performance degradation. 说了是after啊 |
|
地板#
发布于:2004-08-26 18:02
DDK中关于NdisReturnPackets的说明: 这一点我已经看到了。在W2K Passthru中PtReceivePacket函数最后没有调用NdisReturnPackets,而是在MPReturnPacket中调用的NdisReturnPackets。我只是感到DDK中不同处的描述有一些矛盾,你可以从我所指的DDK中的几处去看一看。 |
|
地下室#
发布于:2004-09-14 10:49
在 protocolreceivepacket 里面可以调用 ndisreturnpacket的.
我的程序就是这样做的. 主要你要理解 ndisreturnpacket 是跟 底层的通讯,是告诉底层 包可以回收了. 最主要是你对 下层上来的包 是怎么处理的.是拷贝还是 只是分配一个包描述. |
|