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

一个简单问题!先到先拿分!

楼主#
更多 发布于:2004-02-14 15:12
一个ndis_packet有一个ndis_buffer,Packet->Private.Tail的值是什么?
一个ndis_packet有2个ndis_buffer呢?
谢谢
wengyu100
驱动牛犊
驱动牛犊
  • 注册日期2003-10-10
  • 最后登录2006-10-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-02-19 17:06
自己顶一下。
bangh
驱动牛犊
驱动牛犊
  • 注册日期2003-03-26
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分57分
  • 威望75点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-02-19 22:29
呵呵. 我帮你顶

typedef struct _NDIS_PACKET_PRIVATE
{
UINT PhysicalCount;
UINT TotalLength;
PNDIS_BUFFER Head;
PNDIS_BUFFER Tail;
PNDIS_PACKET_POOL Pool; UINT Count;
ULONG Flags;
BOOLEAN ValidCounts;
UCHAR NdisPacketFlags;
           USHORT NdisPacketOobOffset;
} NDIS_PACKET_PRIVATE, * PNDIS_PACKET_PRIVATE;

head 指的是 第一个 BUFF ,tail 指的是 最后一个 BUFF 拉.



wengyu100
驱动牛犊
驱动牛犊
  • 注册日期2003-10-10
  • 最后登录2006-10-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-02-20 19:58
哈哈
bangh,看看你的ptreceive中
当PacketSize <= LookAheadBufferSize时的代码
有两句
MyPacket->Private.Head->Next=NULL;
MyPacket->Private.Tail=NULL;
如果按你所说。
那么MyPacket->Private.Tail=MyPacket->Private.Head->Next。
你认为呢?
bangh
驱动牛犊
驱动牛犊
  • 注册日期2003-03-26
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分57分
  • 威望75点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-02-22 16:02
呵呵. 是这样的. 你说的没有错. 两者是相等的.

MyPacket->Private.Head->Next=NULL;
MyPacket->Private.Tail=NULL;


主要是 从下层收到的包一般来说是一个 BUFFER 的.
但 WINDOW 下来的包,就不一定是一个 BUFFER 了.
wengyu100
驱动牛犊
驱动牛犊
  • 注册日期2003-10-10
  • 最后登录2006-10-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-02-23 09:44
不好意思,加我范了个小错误
ptreceive应该是从下层收到包
当PacketSize <= LookAheadBufferSize时,也就是说
只有一个buffer
那么,这个buffer既是第一个,也是最后一个
所以如果按你所说
MyPacket->Private.Tail=MyPacket->Private.Head(上个帖子我敲错了)
你认为哪?
游客

返回顶部