hoyizo
驱动牛犊
驱动牛犊
  • 注册日期2003-12-26
  • 最后登录2004-07-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1727回复:8

请问在passthru的PtReceive里的HeaderBuffer中怎样拿到MAC addr

楼主#
更多 发布于:2003-12-29 01:09
听说是可以拿到的,找不到类似的帖子

或者有其他方法在PtReceive里面拿到source的MAC addr
ljjlovernet
驱动小牛
驱动小牛
  • 注册日期2003-10-10
  • 最后登录2004-12-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-12-29 08:52
headbuffer一般就是14个字节,直接读他就可以了,他就是以太桢头
我是来学习的。不打扫卫生
longriver2003
驱动小牛
驱动小牛
  • 注册日期2003-09-14
  • 最后登录2005-03-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-12-29 14:41
怎么有人说是除MAC头(14BYTE)外的的IP头和数据?到底哪个说法对?
给分才有动力!所以我坚决给分!
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-12-29 17:02
怎么有人说是除MAC头(14BYTE)外的的IP头和数据?到底哪个说法对?


谁说的headbuffer里面有ip头?老出去毙了。
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
ljjlovernet
驱动小牛
驱动小牛
  • 注册日期2003-10-10
  • 最后登录2004-12-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-12-29 17:05
好,毙了
我是来学习的。不打扫卫生
hoyizo
驱动牛犊
驱动牛犊
  • 注册日期2003-12-26
  • 最后登录2004-07-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-12-29 18:21
headbuffer一般就是14个字节,直接读他就可以了,他就是以太桢头


多谢,就是说我用((char *)HeaderBuffer)[X] 的格式就可以拿出来咯?

[编辑 -  12/29/03 by  hoyizo]
hoyizo
驱动牛犊
驱动牛犊
  • 注册日期2003-12-26
  • 最后登录2004-07-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-12-30 13:17
我用
DbgPrint(\" HeaderBuffer: %u\\n\", HeaderBuffer);
DbgPrint(\" HeaderBufferSize: %u\\n\", HeaderBufferSize);

打印,再drivermonitor里面看到的却是类似
-17.475   Default     HeaderBuffer: 4286049008
-17.475   Default     HeaderBufferSize: 14

的东东, 这里打印出来的应该是pointer本身,但是如果我要拿出pointer所指的内容要怎么办?PVOID定义的pointer要怎么样用?

我用 (char *)HeaderBuffer 强行改格式,结果蓝屏。请老大们告知正确只用方法

[编辑 -  12/30/03 by  hoyizo]
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
7楼#
发布于:2003-12-30 17:39
u can do like this:

#pragma pack(push, 1)
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;
#pragma pack(pop)

PETHERNET_HEADER pEth = (PETHERNET_HEADER)HeaderBuffer;
pEh->...
hoyizo
驱动牛犊
驱动牛犊
  • 注册日期2003-12-26
  • 最后登录2004-07-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-12-30 20:19
谢谢arthurtu老大

我刚刚在以前的帖子里找到类似于你提供的解决方法了,问题现在已经解决
游客

返回顶部