sunxingwen
驱动牛犊
驱动牛犊
  • 注册日期2006-10-30
  • 最后登录2012-02-29
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望102点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
阅读:1821回复:3

请教passthru中间层驱动的一个较高深问题的解决办法

楼主#
更多 发布于:2008-09-02 11:27
请问:passthru 驱动中,经观察,为什么发送出去的帧,又总是再接收回来了呢?如何解决?
smilebear
驱动牛犊
驱动牛犊
  • 注册日期2002-06-14
  • 最后登录2010-06-24
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望38点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-09-12 17:05
问题太抽象。
发出去的是什么帧呢?收回来的和发出去的内容完全一样吗?
比如下面这种情况就有可能:
你发出去的是broadcast包,而你的miniport修改了source mac address(passthru和miniport里是可以用不同的mac address的),这样发出去的包经过一些路由或转发可能还会发给你,你的miniport收到后如果不滤掉passthru就会再收到。

当然还有很多别的可能,所以解决办法是,在passthru的发送端和接收端打印出完整的包的内容,然后分析是什么原因。
mister
驱动牛犊
驱动牛犊
  • 注册日期2001-11-25
  • 最后登录2013-02-26
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望26点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-09-12 17:14
应该是没有设置NDIS_FLAGS_DONT_LOOPBACK吧?
你可以在包发送前:
NdisSetPacketFlags(Packet, NDIS_FLAGS_DONT_LOOPBACK);
试试!。
sunxingwen
驱动牛犊
驱动牛犊
  • 注册日期2006-10-30
  • 最后登录2012-02-29
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望102点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
地板#
发布于:2008-11-07 11:26
多谢, 我试试
游客

返回顶部