antspower
驱动中牛
驱动中牛
  • 注册日期2002-10-17
  • 最后登录2010-08-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值2点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1355回复:3

讨论NAT在windows下的实现(在passthru 的基础上)

楼主#
更多 发布于:2003-06-10 21:16
1。在收到数据报转发时:直接在ptreceive中用ndissend可以吗?
2。是不是必须要两块网卡?也就是说在ptreceive中必须要用另外一块网卡来转发数据?
3。怎么在passthru中得到网卡的信息?也就是得到网络适配器的指针?
4。在转发时,是先对IP分片进行重组,还是不要重组直接转发?

//3个问题很幼稚ing,呵呵,现在已经做完了!



 




 



 


[编辑 -  6/10/03 by  antspower]

[编辑 -  7/14/03 by  antspower]
放弃瘟草,现吃李草
dshadow79
驱动牛犊
驱动牛犊
  • 注册日期2002-09-29
  • 最后登录2006-04-10
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-06-14 14:01
1。在收到数据报转发时:直接在ptreceive中用ndissend可以吗?
2。是不是必须要两块网卡?也就是说在ptreceive中必须要用另外一块网卡来转发数据?
3。怎么在passthru中得到网卡的信息?也就是得到网络适配器的指针?
4。在转发时,是先对IP分片进行重组,还是不要重组直接转发?
[编辑 -  6/10/03 by  antspower]


1。可以的,只要你处理好PtSendComplete,passthru默认的是不行的
2。不一定,可以直接在一块网卡上接收/发送,现在的网卡都是双工的,没问题
3。是说PADAPT这个结构么?一般的context都是这个值
4。直接转发就好吧

我想你做的大概就是一个透明的网桥。我刚做完这部分代码,多多交流 :)
logincao
驱动牛犊
驱动牛犊
  • 注册日期2002-03-15
  • 最后登录2006-01-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-06-17 18:55
dshadow79
在PtSendComplete里面是不是要根据NDIS_STATUS Status状态值进行判断,重而做不同的处理?
 如果是,又该如何处理?
不在沉默中爆发,就在沉默中死亡
dshadow79
驱动牛犊
驱动牛犊
  • 注册日期2002-09-29
  • 最后登录2006-04-10
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-06-18 10:46
不用的,sendcomplete里面只是释放资源。发送成功不成功都要把资源释放。需要判断的是这个packet是不是你自己的驱动分配的,如果是自己分配的,释放掉。如果是MPSend里面调用的ndissend而向下层发送的packet,则调用NdisMSendComplete把这个包返回给上层协议。如果是PtReceivePacket里面调用的ndissend而向下层发送的packet,则调用NdisReturnPacket把这个包返回给下层

反正如果你在很多情况下调用了ndissend,则在sendcomplete里面就要把这些情况都考虑到
游客

返回顶部