googlebearice
驱动牛犊
驱动牛犊
  • 注册日期2004-03-30
  • 最后登录2007-08-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1576回复:4

ProtocolReceivePacket和NdisReturnPacket的问题!

楼主#
更多 发布于:2004-08-25 09:52
在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,总是在困惑中挣扎,希望各位指点迷津!
googlebearice
驱动牛犊
驱动牛犊
  • 注册日期2004-03-30
  • 最后登录2007-08-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-08-25 09:53
ProtocolRececivePacket和NdisReturnPacket到底是什么关系?
tooflat
论坛版主
论坛版主
  • 注册日期2002-07-08
  • 最后登录2014-03-11
  • 粉丝2
  • 关注0
  • 积分1007分
  • 威望551点
  • 贡献值3点
  • 好评度476点
  • 原创分0分
  • 专家分0分
板凳#
发布于: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啊
googlebearice
驱动牛犊
驱动牛犊
  • 注册日期2004-03-30
  • 最后登录2007-08-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-08-26 18:02
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啊
 

这一点我已经看到了。在W2K Passthru中PtReceivePacket函数最后没有调用NdisReturnPackets,而是在MPReturnPacket中调用的NdisReturnPackets。我只是感到DDK中不同处的描述有一些矛盾,你可以从我所指的DDK中的几处去看一看。
bangh
驱动牛犊
驱动牛犊
  • 注册日期2003-03-26
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分57分
  • 威望75点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-09-14 10:49
在 protocolreceivepacket 里面可以调用 ndisreturnpacket的.
我的程序就是这样做的.
主要你要理解 ndisreturnpacket 是跟 底层的通讯,是告诉底层 包可以回收了.
最主要是你对 下层上来的包 是怎么处理的.是拷贝还是 只是分配一个包描述.
游客

返回顶部