cgh93829
驱动牛犊
驱动牛犊
  • 注册日期2002-08-11
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1297回复:2

为什么MPSENDPACKETS中的每个BUFFER中只有IP头,而没有用户传递的数据呢

楼主#
更多 发布于:2002-07-13 17:53
Hi,老大们,在IMD中的MPSendPackets中,我查询了所有PACKET的所有
BUFFER,发现只有TCPIP头,而没有用户的数据,如果真是这样,
那用户的数据在什么地方可以看得到呢?
moqingsong
论坛版主
论坛版主
  • 注册日期2002-04-07
  • 最后登录2011-02-03
  • 粉丝0
  • 关注0
  • 积分74分
  • 威望71点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-07-13 20:27
可能是多buffer的吧。顺着next buffer的指针往下找好了。
按第一贴的“给分”键,给分。
cgh93829
驱动牛犊
驱动牛犊
  • 注册日期2002-08-11
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-07-14 09:10
老大,是呀.我是查询了所有Packet中的所有Buffer.
代码如下:

VOID
MPSendPackets(
    IN  NDIS_HANDLE MiniportAdapterContext,
    IN  PPNDIS_PACKET PacketArray,
    IN  UINT NumberOfPackets
    )

for ( i = 0; i < NumberOfPackets; ++i ) {   // process the whole array of packets

        XportPacket = PacketArray[ i ];   // pointer to the packet we are working on

// read the xport\'s packet
         NdisQueryPacket( XportPacket, NULL, NULL, &FirstXportBuffer, &PacketLength );

NextBuffer=FirstXportBuffer;

do
{
vpt=NULL;

NdisQueryBuffer(NextBuffer,& vpt,& len);

if(vpt!=NULL)
{
len_=Null;
vpt_=Null;

GetData(vpt,len,& vpt_,& len_,& ptl);

if((vpt_!=Null) && (len_!=Null))
{
DbgPrint(\"\\nIn MiniPort Send Packets\\n\");
}
}

NdisGetNextBuffer(NextBuffer,& NextBuffer);
}
while(NextBuffer!=Null);

但发现每个Buffer中返回的数据只是TCPIP头部.
游客

返回顶部