阅读:1782回复:7
怎样接收NdisMIndicateReceivePacket上传的包?
由于NdisMIndicateReceivePacket上传的可能是以太帧队列,就是可能有好几个以太帧排在一起,当MAC帧的第13,14字节是类型时,无法得到该帧的长度信息,也就没有办法将这队列中的帧分开。
恳请大侠赐教! |
|
沙发#
发布于:2002-04-03 20:13
但是在Packet的Sample中是通过哪个函数来实现对NdisMIndicateReceivePacket的接口?
|
|
板凳#
发布于:2002-04-03 20:09
原来如此。谢谢。:)
|
|
地板#
发布于:2002-04-03 18:33
由于NdisMIndicateReceivePacket上传的可能是以太帧队列,就是可能有好几个以太帧排在一起,当MAC帧的第13,14字节是类型时,无法得到该帧的长度信息,也就没有办法将这队列中的帧分开。 请看清楚NdisMIndicateReceivePacket函数的原形 VOID NdisMIndicateReceivePacket( IN NDIS_HANDLE MiniportAdapterHandle, IN PPNDIS_PACKET ReceivePackets, IN UINT NumberOfPackets ); ReceivePackets是一个PNDIS_PACKET数组 |
|
|
地下室#
发布于:2002-04-03 18:16
但MAC帧是不定长的。我们并不预先知道各种类型的MAC帧长度啊。
|
|
5楼#
发布于:2002-04-03 17:10
怎么会无法将这个帧的队列分开呢?实在不行就只有直接读取类型,然后根据类型判断长度了。
|
|
6楼#
发布于:2002-04-03 09:55
你误解了我的问题。当第13和14字节是类型时,就没有LLC层,包长度就不能在包头确定,当几个包排成一队时,不知道第一个包应读到哪里为止,也不知道第二个包从哪里开始。
希望有经验的大侠帮忙啊! |
|
7楼#
发布于:2002-04-02 15:28
好象有办法,如果读出的长度大于8000(忘了是多少)
肯定是另外的情况。 因为不会超过1500 |
|
|