roger_chen35
驱动牛犊
驱动牛犊
  • 注册日期2002-11-19
  • 最后登录2004-04-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2108回复:11

DDK PACKET sample problem

楼主#
更多 发布于:2002-11-20 11:25
救命啊:
1.请问一下如果我要在Protocol Driver(如 ddk packet sample)内传送一个Packet是不是要自己加上Mac Header呢?

2.如果是要如何加呢?

最新喜欢:

utahyjutahyj
coffee000
驱动牛犊
驱动牛犊
  • 注册日期2002-05-21
  • 最后登录2003-04-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-11-20 13:04

1. 是要自己加
2. 在链接到packet的第一个buffer所指向的MEMORY填充Mac Header
roger_chen35
驱动牛犊
驱动牛犊
  • 注册日期2002-11-19
  • 最后登录2004-04-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-11-20 16:32

1. 是要自己加
2. 在链接到packet的第一个buffer所指向的MEMORY填充Mac Header


谢谢coffee000的回复
对于第二个问题是,我现在并不知道接收端的Mac Address所以没有办法填入
所以有没有简单的方法可以得知对方的Mac Address?


mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-11-20 16:49
发一个arp包
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-11-20 16:49
发一个arp包,
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
roger_chen35
驱动牛犊
驱动牛犊
  • 注册日期2002-11-19
  • 最后登录2004-04-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-11-21 09:19
发一个arp包,


1.那要发送arp包之前应该可以先查看arp cache但是在protocol driver内要如何调用arp cache(是不是有一些function可以调用)
2.那取回的mac address会自动纪录到arp cache吗?如果没有那在我的protocol driver内应该要如何填入?
3.还有一个问题就是,如果要在protocol driver直接发送data都是如何做的?
roger_chen35
驱动牛犊
驱动牛犊
  • 注册日期2002-11-19
  • 最后登录2004-04-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-11-21 09:20
[quote]
1. 是要自己加
2. 在链接到packet的第一个buffer所指向的MEMORY填充Mac Header


谢谢coffee000的回复
对于第二个问题是,我现在并不知道接收端的Mac Address所以没有办法填入
所以有没有简单的方法可以得知对方的Mac Address?


 [/quote]
coffee000
驱动牛犊
驱动牛犊
  • 注册日期2002-05-21
  • 最后登录2003-04-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-11-21 10:02
 
  如果知道对方IP地址的话,可以在协议driver中发送一个ARP。
  如果没有对方IP地址,可以在协议driver先发送一个自定义的广播帧,在对方协议driver中应答这一个广播,你就可以知道对方MAC地址了(象其他局域网协议(NETBEUI/IPX)一样)。
roger_chen35
驱动牛犊
驱动牛犊
  • 注册日期2002-11-19
  • 最后登录2004-04-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-11-21 10:20

  如果知道对方IP地址的话,可以在协议driver中发送一个ARP。
  如果没有对方IP地址,可以在协议driver先发送一个自定义的广播帧,在对方协议driver中应答这一个广播,你就可以知道对方MAC地址了(象其他局域网协议(NETBEUI/IPX)一样)。  



1.那要发送arp包之前应该可以先查看arp cache但是在protocol driver内要如何调用arp cache(是不是有一些function可以调用)
2.那取回的mac address会自动纪录到arp cache吗?如果没有那在我的protocol driver内应该要如何填入?
3.还有一个问题就是,如果要在protocol driver直接发送data都是如何做的?
coffee000
驱动牛犊
驱动牛犊
  • 注册日期2002-05-21
  • 最后登录2003-04-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-11-21 11:12
[quote]
  如果知道对方IP地址的话,可以在协议driver中发送一个ARP。
  如果没有对方IP地址,可以在协议driver先发送一个自定义的广播帧,在对方协议driver中应答这一个广播,你就可以知道对方MAC地址了(象其他局域网协议(NETBEUI/IPX)一样)。  



1.那要发送arp包之前应该可以先查看arp cache但是在protocol driver内要如何调用arp cache(是不是有一些function可以调用)
2.那取回的mac address会自动纪录到arp cache吗?如果没有那在我的protocol driver内应该要如何填入?
3.还有一个问题就是,如果要在protocol driver直接发送data都是如何做的? [/quote]

1.目前不知道有没有这种函数
2.为什么要填入arp cache
3.分配一个packet descritor从预先分配的packet pool,申请一段内存,拷贝数据到此缓冲区,把这段内存连接到一个buffer descriptor,调用NdisChainBufferAtFront把buffer连接到前面的packet,调用NdisSend.
roger_chen35
驱动牛犊
驱动牛犊
  • 注册日期2002-11-19
  • 最后登录2004-04-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-11-21 11:32
[quote][quote]
  如果知道对方IP地址的话,可以在协议driver中发送一个ARP。
  如果没有对方IP地址,可以在协议driver先发送一个自定义的广播帧,在对方协议driver中应答这一个广播,你就可以知道对方MAC地址了(象其他局域网协议(NETBEUI/IPX)一样)。  



1.那要发送arp包之前应该可以先查看arp cache但是在protocol driver内要如何调用arp cache(是不是有一些function可以调用)
2.那取回的mac address会自动纪录到arp cache吗?如果没有那在我的protocol driver内应该要如何填入?
3.还有一个问题就是,如果要在protocol driver直接发送data都是如何做的? [/quote]

1.目前不知道有没有这种函数
2.为什么要填入arp cache
3.分配一个packet descritor从预先分配的packet pool,申请一段内存,拷贝数据到此缓冲区,把这段内存连接到一个buffer descriptor,调用NdisChainBufferAtFront把buffer连接到前面的packet,调用NdisSend. [/quote]

2.我想如果在我的本
roger_chen35
驱动牛犊
驱动牛犊
  • 注册日期2002-11-19
  • 最后登录2004-04-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-11-21 11:36
[quote][quote][quote]
  如果知道对方IP地址的话,可以在协议driver中发送一个ARP。
  如果没有对方IP地址,可以在协议driver先发送一个自定义的广播帧,在对方协议driver中应答这一个广播,你就可以知道对方MAC地址了(象其他局域网协议(NETBEUI/IPX)一样)。  



1.那要发送arp包之前应该可以先查看arp cache但是在protocol driver内要如何调用arp cache(是不是有一些function可以调用)
2.那取回的mac address会自动纪录到arp cache吗?如果没有那在我的protocol driver内应该要如何填入?
3.还有一个问题就是,如果要在protocol driver直接发送data都是如何做的? [/quote]

1.目前不知道有没有这种函数
2.为什么要填入arp cache
3.分配一个packet descritor从预先分配的packet pool,申请一段内存,拷贝数据到此缓冲区,把这段内存连接到一个buffer descriptor,调用NdisChainBufferAtFront把buffer连接到前面的packet,调用NdisSend. [/quote]


2.我想如果在我的本机内的arp cache 内有destination host的mac address则直接取用就好了

3.可是要NdisSend的data没有Mac header 所以才要自己填Mac Header
但是又没有Destination host的 Mac Address所以才要发arp packet去索取 destination mac addres
但是我是想如果本机的arp cache有destination host的mac address就直接取用,就不用再发一次arp packet了

谢谢
游客

返回顶部