阅读:1659回复:4
关于ReceiveCompleteHandler
问题:
1 : receivecompletehandler 何时会被调用。 从论坛上搜索一遍发现斑竹说“ndis 4 有时调用,ndis 5 总是被调用” 2 : 若在ptreceive 中将packet的data 拷贝入自己的缓冲区,然后进行处理,并将处理后新生成的packet上传。用此种方法,receivecompletehandler的流程是否需要修改(passthru中的)? |
|
沙发#
发布于:2002-03-27 19:04
1.当下层不繁忙时,就调用PROTOCOLRECEIVECOMPLETE,不管是否有数据包被上层的协议层或中间层接收,一般情况下是每调用一次NdisMXXXIndicateReceive,都会调用一次NdisReceiveComplete。但是有时候是调用前者多次才调用一次后者。
2。receivecompletehandler是要修改的,并且就在这里处理你前一阶段接收且没有处理的包。 |
|
板凳#
发布于:2002-03-28 08:39
但我的处理流程是在transfercomplete中完成的,请问receivecompletehandler 还需要修改吗?
|
|
地板#
发布于:2002-03-28 11:28
transfercompleter不是每个包都掉取的,它是在PROTOCOLRECEIVE中调用NdisTransferData,且返回值是NDIS_STATUS_PENDING时,NDIS才会调用transfercompleter这个例程。且DDK推荐在PROTOCOLRECEIVECOMPLETE中进行数据包的后期处理。
所以我认为:“但我的处理流程是在transfercomplete中完成的”是不对的,而“需要修改receivecompletehandler ”进行数据处理。 |
|
地下室#
发布于:2003-04-01 21:11
你是说IM吗?
|
|