lljyxh1
驱动牛犊
驱动牛犊
  • 注册日期2001-03-23
  • 最后登录2002-07-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1581回复:4

关于ReceiveCompleteHandler

楼主#
更多 发布于:2002-03-27 17:23
问题:
1 : receivecompletehandler 何时会被调用。
从论坛上搜索一遍发现斑竹说“ndis 4 有时调用,ndis 5 总是被调用”

2 : 若在ptreceive 中将packet的data 拷贝入自己的缓冲区,然后进行处理,并将处理后新生成的packet上传。用此种方法,receivecompletehandler的流程是否需要修改(passthru中的)?
mister
驱动牛犊
驱动牛犊
  • 注册日期2001-11-25
  • 最后登录2013-02-26
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望26点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-03-27 19:04
1.当下层不繁忙时,就调用PROTOCOLRECEIVECOMPLETE,不管是否有数据包被上层的协议层或中间层接收,一般情况下是每调用一次NdisMXXXIndicateReceive,都会调用一次NdisReceiveComplete。但是有时候是调用前者多次才调用一次后者。
2。receivecompletehandler是要修改的,并且就在这里处理你前一阶段接收且没有处理的包。
lljyxh1
驱动牛犊
驱动牛犊
  • 注册日期2001-03-23
  • 最后登录2002-07-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-03-28 08:39
但我的处理流程是在transfercomplete中完成的,请问receivecompletehandler 还需要修改吗?
mister
驱动牛犊
驱动牛犊
  • 注册日期2001-11-25
  • 最后登录2013-02-26
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望26点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-03-28 11:28
transfercompleter不是每个包都掉取的,它是在PROTOCOLRECEIVE中调用NdisTransferData,且返回值是NDIS_STATUS_PENDING时,NDIS才会调用transfercompleter这个例程。且DDK推荐在PROTOCOLRECEIVECOMPLETE中进行数据包的后期处理。
所以我认为:“但我的处理流程是在transfercomplete中完成的”是不对的,而“需要修改receivecompletehandler ”进行数据处理。
jyhlc
驱动牛犊
驱动牛犊
  • 注册日期2002-03-11
  • 最后登录2005-11-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-04-01 21:11
你是说IM吗?
游客

返回顶部