birdtomaster
驱动牛犊
驱动牛犊
  • 注册日期2003-10-03
  • 最后登录2008-09-07
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:1385回复:8

同一网卡调用两个接收包函数是否正常???

楼主#
更多 发布于:2003-10-27 21:27
用PtReceivePacket接收到的包的信息,但输出信息中也有是在PtReceive函数中输出的信息,也就是说两个函数都在用,只不过不是同时而已,请问正常否,可以用PtReceivePacket接收包的网卡也可以用PtReceive函数接收包吗?还是PtReceivePacket要调用PtReceive,谢谢!

[编辑 -  10/27/03 by  birdtomaster]
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2003-10-27 22:03
什么输出信息?
antspower
驱动中牛
驱动中牛
  • 注册日期2002-10-17
  • 最后登录2010-08-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值2点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-10-28 10:52
正常
放弃瘟草,现吃李草
birdtomaster
驱动牛犊
驱动牛犊
  • 注册日期2003-10-03
  • 最后登录2008-09-07
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-10-28 17:12
什么输出信息?

在过滤了所有广播包后才有这种现象,就是原来一直是调用的PtReceivePacket接收包,过滤广播包后,接收某些包还是用的PtReceivePacket,但接收某些包是使用的的PtReceive函数,如接收ICMP,TCP,UDP协议类型的包时用PtReceive函数,当然就输出我在PtReceive中加入的DbgPrint中的信息。取消过滤就只用PtReceivePacket了,我想是不是广播包中有使用什么接收函数的协议内容,在没有这协议时就用PtReceive???谢谢两位

[编辑 -  10/28/03 by  birdtomaster]
bangh
驱动牛犊
驱动牛犊
  • 注册日期2003-03-26
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分57分
  • 威望75点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-10-28 21:44
呵呵。 这跟 包的类型没关系啦。

跟你下层 的资源 紧张 度,有没关系啦。
紧张的时候, 可能就会调用  PTRECEIVE .
birdtomaster
驱动牛犊
驱动牛犊
  • 注册日期2003-10-03
  • 最后登录2008-09-07
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-10-29 19:29
呵呵。 这跟 包的类型没关系啦。

跟你下层 的资源 紧张 度,有没关系啦。
紧张的时候, 可能就会调用  PTRECEIVE .
 

有道理,我在两台机子上试了一下
一台不过滤广播包时也用PtReceive,但是时偶尔用一下;
另一台不过滤广播包就一直不用PtReceive,这台机子配置好些;
但是加上过滤后,几乎均是使用PtReceive,请问这是为什么?
谢谢
bangh
驱动牛犊
驱动牛犊
  • 注册日期2003-03-26
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分57分
  • 威望75点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-10-29 19:51
呵呵. 回答了别忘了给分呀.
birdtomaster
驱动牛犊
驱动牛犊
  • 注册日期2003-10-03
  • 最后登录2008-09-07
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-11-06 11:49
呵呵. 回答了别忘了给分呀.
 

只好等下一个问题我多给你些分了,因为对一个问题给了一次分以后,再有人回答就不能给分了,没有给分按钮了:-> ^0^
bangh
驱动牛犊
驱动牛犊
  • 注册日期2003-03-26
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分57分
  • 威望75点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-11-06 14:44
呵呵. 这跟 过虑不过虑真得没什么关系拉.
除非你再 NIC 层过虑, 那对资源 有关系. 是NIC 得资源空了好多.

其实, 你要根本得弄懂 调用 PTRECEIVEPACKET 和 PTRECEIVE
得区别拉.

1. 下层如果调用得是  xxxindicateReceive得 , 那肯定是调用了 ptreceive , 当然下层调用xxxindicateReceive 有它 自己得根据, 例如 资源很紧张拉.  或者网卡本身就 只工作在 这种模式下.

2 , 下层 调用了  xxxindicateReceivePacket, 但 packet 得状态 设为 resource 得. 那肯定也得 调用 ptreceive的 .

3, 你要看 ddk 注意 ptreceivepacket 和 ptreceive 在包处理的区别.  一种情况下, 包可修改. 另一种情况下不可以修改.
游客

返回顶部