blackperl
驱动牛犊
驱动牛犊
  • 注册日期2004-09-16
  • 最后登录2005-04-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1286回复:3

菜鸟问个问题,救救我吧,大侠

楼主#
更多 发布于:2004-09-23 10:19
在Passthru中,我要截获应用层发送的IP包,然后显示她的源地址和目的地址

那怎么截获要发送的包呢??是不是在MPSendPackets这个函数中,如果是怎么做,谢谢!

怎么把获得的信息显示出来呢??
likedust
驱动牛犊
驱动牛犊
  • 注册日期2004-09-18
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-09-23 17:13
 :P楼上的兄弟我是新手,想问问你是不是读了passthru的源码了,我现在仅仅搞清楚了miniport,im,protocol之间的层次关系,对于什么虚拟NIC了,绑定了,都不是很清楚.
再就是inf里面具体实现什么我是不是也要看?
需要您的指教.
kja57
驱动牛犊
驱动牛犊
  • 注册日期2004-08-05
  • 最后登录2016-01-09
  • 粉丝1
  • 关注1
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-09-24 23:10
一般是在MPSend中(在我的电脑上是),其实MPSendPackets相当于是循环调用MPSend;
数据包的内容在Packet->Private.Head和Tail所指的BUFFER中,你可以将BUFFER中的数据NdisMoveMemory出来,也可以直接使用
xz_clark
驱动牛犊
驱动牛犊
  • 注册日期2004-09-17
  • 最后登录2004-10-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-09-25 09:02
用NdisGetFirstBufferFromPacket得到第一个Buffer,
接着的Buffer用NdisGetNextBuffer得到, 直到NdisGetNextBuffer返回NULL.
对每一个Buffer, 用NdisQueryBuffer得到真正data buffer的地址。
注意一个packet的各个data buffer是不连续的,你得一个一个的找。

再还有就是你拿到的不是IP packet, 是ethernet frame. 你得检查ethertype, 看payload是不是IP packet.
游客

返回顶部