阅读:1279回复:2
还是关于passthru的一点问题(希望会的朋友近来看看阿)
我又几个问题比较困惑:]
关于在passthru中处理Packet的几个问题: 在这个函数中,在向上提交Packet时,他直接用NdisMxxxxIndicateReceive函数提交上去。 但是我看DDK中的介绍,提交Packet时候,要自己创建包描述符,内存等等。但是在这个事例函数中怎么直接就提交上去。 2。在这个函数中他怎么没有判断lookaheadbuffersize和packetsize 的大小,按照ddk中就解释,先根据二者的大小,判断数据是否接受完毕,然后决定是否调用NdisTransferData啊。他好像没有这么做,是不是违背DDK中的做法。 3 还是在这个函数中, pAdapt->IndicateRecvComplete=true;这句话得意图何在。 4 还有在判断OOB中,一开始设置Packet的NDIS_STATUS_RESOURCE属性,在Indicate 过后,又判断这个属性,难道上层在接受这个Packet时属性 值会变。 真的希望高手可以不惜赐教。谢谢拉! |
|
沙发#
发布于:2003-11-05 08:52
1: 调用 NdisMxxxxIndicateReceive 的时候, 本来就可以 不是 完整的包. 否则应该调用 NdisMxxxxIndicateReceivePacket.
你没看到 PASSTHRU 中, 在调用后者的时候 都是重新分配包描述附的嘛. 2 它的出来方法跟 你想的 不一样. 它是根据 GetReceivePacket 如果得到的 不空. 那说明就是已经得到 完整的包. 肯定是 LookAheadbuffer = packetsize , 不然的话, 就向上 指示 不完整的包. 3 , 我不知道你看的是那个下面的 PASSTHRU . 4 .肯定会的. |
|
板凳#
发布于:2003-11-10 11:13
真的很谢谢了。
不过关于第二个问题,我还是有点不明白: 就是我为什么不直接判断LookAheadbuffer = packetsize 的关系二而是还要调用GetReceivePacket()函数啊! 谢谢拉! 这个问题问完,一起给分。呵呵 |
|