mister
驱动牛犊
驱动牛犊
  • 注册日期2001-11-25
  • 最后登录2013-02-26
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望26点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:1549回复:4

有一个问题我该任何解决?

楼主#
更多 发布于:2001-12-31 16:30
各位:有一个问题我该任何解决:

当我的PASSTHRU收到一个数据包,我该如何通知应用程序?难道是让应用程序不停的从PASSTHRU中读取数据吗(我现在就是用的这个方法)?还有没有其他更好的方法吗?
HuYuguang
论坛版主
论坛版主
  • 注册日期2001-04-25
  • 最后登录2013-04-29
  • 粉丝3
  • 关注1
  • 积分92分
  • 威望11点
  • 贡献值0点
  • 好评度9点
  • 原创分1分
  • 专家分0分
沙发#
发布于:2002-01-01 15:34
各位:有一个问题我该任何解决:

当我的PASSTHRU收到一个数据包,我该如何通知应用程序?难道是让应用程序不停的从PASSTHRU中读取数据吗(我现在就是用的这个方法)?还有没有其他更好的方法吗?



你的应用程序总得要有一个时机去读driver的消息,或者系统来做,
通过事件唤醒线程(你可以用该方法,我在前面的贴子给出了
source)。
不再回忆从前,我已经生活在幸福当中。
mister
驱动牛犊
驱动牛犊
  • 注册日期2001-11-25
  • 最后登录2013-02-26
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望26点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-01-01 17:51
感谢huyg版主。

下面还有一个问题请教:
1).在例程ptReceivePacket中若返回一个非0值(如返回N),那么表示当上层调用NdisReturnPackets这个包N次后NDIS便会调用本层的MiniportReutrnPackets以表示本层获得了这个包的所有权。
2).DDK中关于函数NdisInidecatePackets的说明是,当某个包返回是NDIS_STATUS_PENDING时,本层便失去了这个包的所有权,当上层调用NdisReturnPackets时,本层实行MiniportReturnPackets时才又重新获得这个包的所有权。

问:
1。2)中上层调用NdisReturnPackets几次才会调用本层的MiniportReturnPackets呢?
2。若在1)的情况中发生2)的情况,即在例程ptReceivePacket中调用NdisIndicatePackets时,上层该调用几次NdisReturnPackets呢?

望huyg版主赐教!
HuYuguang
论坛版主
论坛版主
  • 注册日期2001-04-25
  • 最后登录2013-04-29
  • 粉丝3
  • 关注1
  • 积分92分
  • 威望11点
  • 贡献值0点
  • 好评度9点
  • 原创分1分
  • 专家分0分
地板#
发布于:2002-01-03 12:02
感谢huyg版主。

下面还有一个问题请教:
1).在例程ptReceivePacket中若返回一个非0值(如返回N),那么表示当上层调用NdisReturnPackets这个包N次后NDIS便会调用本层的MiniportReutrnPackets以表示本层获得了这个包的所有权。
2).DDK中关于函数NdisInidecatePackets的说明是,当某个包返回是NDIS_STATUS_PENDING时,本层便失去了这个包的所有权,当上层调用NdisReturnPackets时,本层实行MiniportReturnPackets时才又重新获得这个包的所有权。

问:
1。2)中上层调用NdisReturnPackets几次才会调用本层的MiniportReturnPackets呢?
2。若在1)的情况中发生2)的情况,即在例程ptReceivePacket中调用NdisIndicatePackets时,上层该调用几次NdisReturnPackets呢?

望huyg版主赐教!


我记不太清楚了,一般ptrecievepacket返回0,返回n的确意味
着imd失去了对packet的所有权,此情况发生于ip层(或者别的
协议层)的packet_pool或者buffer_pool分配紧张,返回了
ndis_resource,ip层需要共用这块内存。
若返回了非0,那么你需要调用同样次数的returnpacket。

不再回忆从前,我已经生活在幸福当中。
mister
驱动牛犊
驱动牛犊
  • 注册日期2001-11-25
  • 最后登录2013-02-26
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望26点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-01-04 08:41
首先感谢huyg版主
  
    假如我在非ProtocolReceviePacket例程中调用NdisMIndicateReceivePacket函数,并且这个函数返回PENDING,那么我给调用几次NdisReturnPacket呢(因为是非ProtocolReceivePacket, 所以不好返回非0值)?
  
游客

返回顶部