desller
驱动牛犊
驱动牛犊
  • 注册日期2005-06-27
  • 最后登录2005-06-27
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望4点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1480回复:8

怎么接收网络数据包到驱动程序?请高手指导(特急)

楼主#
更多 发布于:2005-06-27 12:45
  我想知道当网络数据包到网卡后如何变成IRP包的??
然后我怎么才能得到我想要的数据?
比如http包 udp包
请各位高手不吝赐教!!!
yuanyuan
驱动大牛
驱动大牛
  • 注册日期2003-01-15
  • 最后登录2010-08-04
  • 粉丝0
  • 关注0
  • 积分1025分
  • 威望300点
  • 贡献值0点
  • 好评度232点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-06-29 13:00
微软的passthru例子
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2005-06-29 11:17
imd驱动你看一下ddk ndis的帮助,具体的例子程序是passthru,做防火墙一般用它来做
desller
驱动牛犊
驱动牛犊
  • 注册日期2005-06-27
  • 最后登录2005-06-27
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望4点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-06-29 10:52
imd驱动是什么??
ndis不是可以截获网络包吗?他截的是什么包?我可以利用吗?
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2005-06-29 10:46
对于ndis,你可以做imd 驱动,就可以得到网络包。但ndis看不到irp。
desller
驱动牛犊
驱动牛犊
  • 注册日期2005-06-27
  • 最后登录2005-06-27
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望4点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-06-29 10:38
我的意思是在ndis驱动中网络包我在哪里可以得到?

如果是irp包的话,怎么还原成原始的封包呢??

谢谢~~!
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
6楼#
发布于:2005-06-27 19:02
如果想处理http这种数据包,写个代理就好了,tdi filter太麻烦了
desller
驱动牛犊
驱动牛犊
  • 注册日期2005-06-27
  • 最后登录2005-06-27
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望4点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-06-27 17:48
谢谢  那么我得到的数据是不是就是完整的数据包?比如http包。那么我是否就可以使用共享内存与应用程序交互??在驱动中开辟共享内存的时机又在哪里才能进入应用程序的上下文呢?
一般的过滤驱动程序可以得到网络数据包吗?
再次感谢zhaock和各位高手
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
8楼#
发布于:2005-06-27 13:47
简单讲,网络数据到达网卡后,miniport driver调用NdisMIndicateReceivePacket通知tcp/ip协议,tcpip.sys,是ndis protocol driver,同时又是tdi server,如果tdi client(对于windows系统,这时候client一般是afd.sys),调用了TdiReceive函数,或者注册了Receive的回调函数,就会被调用,此时就是Irp的格式了,你可以安装一个tdi filter,就可以得到象http包,udp的包
游客

返回顶部