cloudycro
驱动牛犊
驱动牛犊
  • 注册日期2003-12-02
  • 最后登录2006-02-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1590回复:6

MPSend中获得HeaderBuffer,HeaderBufferSize的方法?

楼主#
更多 发布于:2004-01-05 16:12
如果复制到自己的内存里,取第13个字节得到的不对啊,转换后不是正确的报头,是不是可以认为Packet 的OrignalPacket里面开始是MacHeader,后面是IPHeader。。。?那么我有没有办法得到准确的MacHeaderSize呢?难道要用NdisRequest查询么? :(
cloudycro
驱动牛犊
驱动牛犊
  • 注册日期2003-12-02
  • 最后登录2006-02-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-01-05 21:16
 :D搞定了
方法不太好,先假定了MacHeader都是14了。
把Packet先NdisQueryBuffer,再NdisMoveMemory,再NdisGetNextBuffer,取出所有的buffer在取需要的就可以了,我不知道当前的MacHeaderSize,就按照14算的了。看到有个程序查询之后用TotalSize-FrameSize不知道啥意思。 :mad:
bobo_lei
驱动牛犊
驱动牛犊
  • 注册日期2003-03-26
  • 最后登录2008-11-16
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望14点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-01-07 16:53
MacHeader目前都是14哈
hoyizo
驱动牛犊
驱动牛犊
  • 注册日期2003-12-26
  • 最后登录2004-07-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-01-08 09:21
MacHeader绝对是14,不像IPHeader那样还有变数。

一下是arthurtu老大的办法,本来是用在PtReceive里面,不过应该在这里也行吧:

typedef struct _ETH_HEADER
{
unsigned char targ_hw_addr[6]; // 目的地址,6字节。
unsigned char src_hw_addr[6]; // 源地址,6字节。
unsigned char H_frame_type; // 0x0800 for IP data, 0x806 for ARP, 0x8035 for RARP
unsigned char L_frame_type;
} ETHERNET_HEADER, *PETHERNET_HEADER;

PETHERNET_HEADER pEth = (PETHERNET_HEADER)HeaderBuffer;
pEh->...
wxl_50685330
论坛版主
论坛版主
  • 注册日期2002-11-19
  • 最后登录2018-09-25
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望521点
  • 贡献值0点
  • 好评度419点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-01-09 22:07
MAC层你可以肯定是802.3就可以用14,如果下层不一定就需要用QUERY了
根据地的兄弟们,团结就是力量
cloudycro
驱动牛犊
驱动牛犊
  • 注册日期2003-12-02
  • 最后登录2006-02-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-01-10 19:42
和和,wxl_50685330说的是!明白了。
谢谢上面几位的回答,给分! :D :D
Buddha
驱动老牛
驱动老牛
  • 注册日期2001-04-29
  • 最后登录2013-05-18
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望17点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-03-01 14:29
有没有看vlan的MacHeader是什么样子?
<table style="filter: glow(color=sky blue, strength=10)"> <font color=white> 猫生病了, 老鼠大声朗诵诗集, 并修剪盆花. 猫生病了, 老鼠慢慢刷牙洗脸, 并打扫房间. 猫生病了, 老鼠倚在窗边欣赏夜色, 并对流星许愿. 猫生病了, 老鼠也病了, 它说:"我还是习惯那种时时紧张, 处处小心, 夜夜逃亡的生活." 午夜, 我听到老鼠在叹息, 且不再读诗了. </font></table>
游客

返回顶部