阅读:1654回复:4
pasthru例子中,NdisGetReceivedPacket()反回值为什么总是NULL值?
pasthru例子,安装后用SOFTICE跟踪,发现PtReceive函数中NdisGetReceivedPacket()反回值为什么总是NULL值?
请教! |
|
沙发#
发布于:2003-12-20 14:35
返回空有两种情况:
1.若packetsize<=lookaheadpacketsize的话,就是得到了全部的数据,但是没有返回一个正确的包结构。 2.若不是的话则通过transferdate将包重组 |
|
板凳#
发布于:2003-12-22 08:35
谢谢:youngyt!
你说的第一种情况“没有返回一个正确的包结构”,没明白是怎么回事? |
|
地板#
发布于:2003-12-22 14:56
如果这样NdisGetReceivedPacket()还有意义么?
好像没什么用啊 |
|
|
地下室#
发布于:2003-12-23 08:51
没有返回正确的包结构,但是数据全收到了。一个包结构有headerbuffer+lookaheadbuffer,
若正常返回一个包结构,就可以用 NDIS_SET_ORIGINAL_PACKET(MyPacket, NDIS_GET_ORIGINAL_PACKET(Packet)); NDIS_SET_PACKET_HEADER_SIZE(MyPacket, HeaderBufferSize); NdisGetPacketFlags(MyPacket) = NdisGetPacketFlags(Packet); NDIS_SET_PACKET_STATUS(MyPacket, NDIS_STATUS_RESOURCES); 这一系列宏和函数直接复制包! 若不正常返回包结构,但数据收到了,只是说明结构不完整,则需要将headerbuffer+lookaheadbuffer拷到新的Memory中重新组成一个正确的包结构。 |
|