阅读:983回复:1
问题10,帮帮忙,谢谢
在接收方面:我使用的是TransferData的方式,它的介绍是说调用IndicateReceive函数,他将调用MiniportTransferData传输剩余的数据。在这儿我想问一问,是不是一调用IndicateReceive函数,然后上层发现是他所要的帧,他就马上调用TransferData把所有数据拷贝到上层的数据包里了。还是说要等到其他什么时候甚至要等到IndicateReceiveComplete这个动作才会完结。因为我想等IndicateReceive这条指令执行完就告诉硬件可以将这块板上接收内存重新利用。我担心在指令IndicateReceive后,当我向硬件告知可以重新利用板上内存时,其实TransferData正在执行或者还未执行,那么就会造成数据丢失。我看NE2000的例子中它在执行完IndicateReceive这条指令后有一个SetBoundary的动作。是不是就是告诉硬件我使用完的帧的边界以便硬件可以重新利用。
其实在这个问题上,我想问的就是在IndicateReceive这条指令结束,在执行下一条指令时,它的相应的TransferData函数已经执行完了。 |
|
|
沙发#
发布于:2005-05-18 17:41
是的。其实就是IndicateReceive函数内部又调用TransferData函数的。返回的时候,TransferData自然执行完了 |
|