yyy_3
驱动牛犊
驱动牛犊
  • 注册日期2004-03-16
  • 最后登录2012-02-20
  • 粉丝0
  • 关注0
  • 积分54分
  • 威望305点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
阅读:2378回复:1

NDIS6.0 发送包数据部分内容如何取得?

楼主#
更多 发布于:2011-08-03 13:31

void  ReadSendNetBuffer( PNET_BUFFER_LIST NetBufferLists)
{
 PUCHAR    data,info;
 ULONG    len,i,offset=0;
 PNET_BUFFER_LIST CurrNbl;
 PNET_BUFFER   Currbuff;
 PMDL    mdl;
 int     DataLen;
 
 CurrNbl = NetBufferLists;
 
 while (CurrNbl)
 {
  Currbuff = NET_BUFFER_LIST_FIRST_NB(CurrNbl);
  
  while(Currbuff)
  {
   offset = NET_BUFFER_DATA_OFFSET(Currbuff);
   mdl =  NET_BUFFER_FIRST_MDL(Currbuff);
   DataLen = NET_BUFFER_DATA_LENGTH(Currbuff);
  
   if ( mdl && DataLen )
   {
    data = (UCHAR*)MmGetSystemAddressForMdlSafe( mdl,NormalPagePriority );
    if(data)
    {
     info = data + offset;
     ParseProtocol(data+offset,DataLen, FALSE);
    }
    
   }
   Currbuff = NET_BUFFER_NEXT_NB(Currbuff);
  }
  CurrNbl = NET_BUFFER_LIST_NEXT_NBL(CurrNbl);
 }
}
在解析函数ParseProtocol()中可以得到telnet的端口为23, 但我发送一个回车后, 数据部分应该为0x0d, 0x0a(抓包工具看), 但结果是0,0
why?
发送包数据部分内容取得错误. 接收包正常.
NDIS6.0 发送包数据部分内容如何取得?
Tesiro
驱动牛犊
驱动牛犊
  • 注册日期2008-04-18
  • 最后登录2014-04-16
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望387点
  • 贡献值1点
  • 好评度3点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2012-09-18 22:26
NET_BUFFER_LIST_FIRST_NB 修改为 NET_BUFFER_LIST_CURRENT_NB
游客

返回顶部