阅读:1286回复:3
菜鸟问个问题,救救我吧,大侠
在Passthru中,我要截获应用层发送的IP包,然后显示她的源地址和目的地址
那怎么截获要发送的包呢??是不是在MPSendPackets这个函数中,如果是怎么做,谢谢! 怎么把获得的信息显示出来呢?? |
|
沙发#
发布于:2004-09-23 17:13
:P楼上的兄弟我是新手,想问问你是不是读了passthru的源码了,我现在仅仅搞清楚了miniport,im,protocol之间的层次关系,对于什么虚拟NIC了,绑定了,都不是很清楚.
再就是inf里面具体实现什么我是不是也要看? 需要您的指教. |
|
板凳#
发布于:2004-09-24 23:10
一般是在MPSend中(在我的电脑上是),其实MPSendPackets相当于是循环调用MPSend;
数据包的内容在Packet->Private.Head和Tail所指的BUFFER中,你可以将BUFFER中的数据NdisMoveMemory出来,也可以直接使用 |
|
地板#
发布于: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. |
|