falwind
驱动牛犊
驱动牛犊
  • 注册日期2001-12-21
  • 最后登录2006-12-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1039回复:0

这是什么烂毛病

楼主#
更多 发布于:2002-04-26 20:35
有以下几行代码:
1. NdisChainBufferAtFront(MyPacket, Buffer);
2. MyPacket->Private.Head->Next = NULL;
3. MyPacket->Private.Tail = NULL;
4. Rsvd= (PRSVD)(MyPacket->MiniportReserved);
5. Rsvd->OriginalPkt = NULL;
6. NDIS_SET_PACKET_HEADER_SIZE(MyPacket,HeaderBufferSize);
7. NdisMIndicateReceivePacket(pAdapt->MiniportHandle, &MyPacket, 1);
用SoftIce F8单步跟踪时,发现没运行到1就直接到7了,根本不运行2-6,而且在2-6行也设置不了断点;
另外,2-6行没有执行似乎还可以从下面的结果验证:到第7行之后,那个NdisMIndicateReceivePacket似乎立即就调用了MPReturnPacket(或者那个NdisMIndicateReceivePacket仅仅是个宏?),而且传入MPReturnPacket的那个Packet应该就是这里的MyPacket,但是那个Packet的OriginalPacket却不为NULL!于是Free的时候就死掉了。
为什么那几行不执行呢?难道是编译器的问题吗?

请高手救命!

[编辑 -  4/26/02 作者: falwind]
游客

返回顶部