阅读:1740回复:3
请教:向上指示数据包时PENDING怎么办?
指示数据包时遇到NDIS_STATUS_PENDING的情况怎么办?
我使用NdisMIndicateReceivePacket函数向上层指示数据包,当指示结果为NDIS_STATUS_SUCCESS的时候一切正常,但当出现指示状态为NDIS_STATUS_PENDING时,下次再向上指示时就会死机,那位大虾可以指点一下当指示数据包时出现NDIS_STATUS_PENDING的情况我应该怎么办? |
|
最新喜欢:fsb |
沙发#
发布于:2002-01-18 13:16
当出现指示状态为NDIS_STATUS_PENDING时, 你不能用此包再进行指示其他包。你可以用其他的包来指示的(多分配几个包),ndis 的ReturnPacket例程会将状态为NDIS_STATUS_PENDING的包返还给你的。到时你就可以重用此包了。
|
|
板凳#
发布于:2002-01-18 14:43
太感谢你了,你知道我已经在这个问题上徘徊了两个星期了,谢谢!
不过还想问一下 1、我应该分配几个包比较合适呢? 2、在returnpacket函数里面要做些什么呢?只用一个ndisreturnpacket函数可以嘛? |
|
地板#
发布于:2002-01-19 14:23
1.对于返回NDIS_STATUS_PENDING的问题,我觉得在DDK documention上的NdisMIndicateReceivePacket解释的比较好及全面。
2.因为一个数据包包括一个IP数据包,我觉得根据这个原则划分比较好。 3.在MiniportReturnPacket例程中,此时表示你发送到上层的数据包的所有权已经收回。若这些数据包本来是下层发送上来的,此时你可以将这些数据包返回去(调用函数NdisReturnpacket);若这些数据包本来就是你在本层生成的,此时你可以销毁掉或放到缓冲池中等待下次使用。 |
|