chudd
驱动牛犊
驱动牛犊
  • 注册日期2003-07-02
  • 最后登录2010-09-21
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望20点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
阅读:1592回复:4

pasthru例子中,NdisGetReceivedPacket()反回值为什么总是NULL值?

楼主#
更多 发布于:2003-12-19 17:06
pasthru例子,安装后用SOFTICE跟踪,发现PtReceive函数中NdisGetReceivedPacket()反回值为什么总是NULL值?
请教!
youngyt
驱动牛犊
驱动牛犊
  • 注册日期2003-11-23
  • 最后登录2006-12-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-12-20 14:35
返回空有两种情况:
1.若packetsize<=lookaheadpacketsize的话,就是得到了全部的数据,但是没有返回一个正确的包结构。
2.若不是的话则通过transferdate将包重组
chudd
驱动牛犊
驱动牛犊
  • 注册日期2003-07-02
  • 最后登录2010-09-21
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望20点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-12-22 08:35
谢谢:youngyt!
你说的第一种情况“没有返回一个正确的包结构”,没明白是怎么回事?
ljjlovernet
驱动小牛
驱动小牛
  • 注册日期2003-10-10
  • 最后登录2004-12-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-12-22 14:56
如果这样NdisGetReceivedPacket()还有意义么?

好像没什么用啊
我是来学习的。不打扫卫生
youngyt
驱动牛犊
驱动牛犊
  • 注册日期2003-11-23
  • 最后登录2006-12-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于: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中重新组成一个正确的包结构。
游客

返回顶部