阅读:1355回复:3
讨论NAT在windows下的实现(在passthru 的基础上)
1。在收到数据报转发时:直接在ptreceive中用ndissend可以吗?
2。是不是必须要两块网卡?也就是说在ptreceive中必须要用另外一块网卡来转发数据? 3。怎么在passthru中得到网卡的信息?也就是得到网络适配器的指针? 4。在转发时,是先对IP分片进行重组,还是不要重组直接转发? //3个问题很幼稚ing,呵呵,现在已经做完了! [编辑 - 6/10/03 by antspower] [编辑 - 7/14/03 by antspower] |
|
|
沙发#
发布于:2003-06-14 14:01
1。在收到数据报转发时:直接在ptreceive中用ndissend可以吗? 1。可以的,只要你处理好PtSendComplete,passthru默认的是不行的 2。不一定,可以直接在一块网卡上接收/发送,现在的网卡都是双工的,没问题 3。是说PADAPT这个结构么?一般的context都是这个值 4。直接转发就好吧 我想你做的大概就是一个透明的网桥。我刚做完这部分代码,多多交流 :) |
|
板凳#
发布于:2003-06-17 18:55
dshadow79
在PtSendComplete里面是不是要根据NDIS_STATUS Status状态值进行判断,重而做不同的处理? 如果是,又该如何处理? |
|
|
地板#
发布于:2003-06-18 10:46
不用的,sendcomplete里面只是释放资源。发送成功不成功都要把资源释放。需要判断的是这个packet是不是你自己的驱动分配的,如果是自己分配的,释放掉。如果是MPSend里面调用的ndissend而向下层发送的packet,则调用NdisMSendComplete把这个包返回给上层协议。如果是PtReceivePacket里面调用的ndissend而向下层发送的packet,则调用NdisReturnPacket把这个包返回给下层
反正如果你在很多情况下调用了ndissend,则在sendcomplete里面就要把这些情况都考虑到 |
|