windows平台下,在驱动层,获取进程的pid,获取进程的网络流量,以及怎么控制某个进程的上传速度和下载速度

编程实战营 2014-11-03 10:45:08
如题:
说明一下是在windows 7平台下,驱动层来实现这个功能,不是使用微软应用层的api。
驱动层,获取进程的pid,获取进程的网络流量,以及怎么控制某个进程的上传速度和下载速度

我要实现的功能,就是获取一个进程(比如qq.exe)的上传速度,下载速度,以及已下载流量已上传流量。

网上都让我搜索遍了,包括codeproject和sourceForget这种开源代码网站,得到的初步结论,可以使用微软的TDI框架或者WFP框架,我用一周的时间把TDI的代码大致看了下,但是没找到什么实现的思路。

请教有过相关开发经验的大神,指导下小弟。真心感谢哈
我自己找到的相关资料
http://www.cnblogs.com/himessage/archive/2013/01/15/2860834.html
还有我看了《寒江独钓》这本书关于TDI部分的讲解
还有一些内核编程的基础知识。
...全文
839 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
0colonel0 2016-07-26
  • 打赏
  • 举报
回复
哥们,我陷入了和你一样的困局,只是时间不同(....)。这个问题你最后怎么实现的,求教
Richardicy 2014-12-18
  • 打赏
  • 举报
回复
这种功能在win下面怎么控制的呢? 360的确有类似功能
dragon_horse 2014-12-18
  • 打赏
  • 举报
回复
TDI+NDIS,两者结合下就可以了
zhi_qiu 2014-11-11
  • 打赏
  • 举报
回复
顶,感觉分析的挺好的
zhi_qiu 2014-11-11
  • 打赏
  • 举报
回复
http://bbs.pediy.com/showthread.php?t=189926


刚刚在看雪看到的,希望对楼主有帮助
二进制脑袋 2014-11-08
  • 打赏
  • 举报
回复
我也没做过类似的工作,但没找到思路是不对的,要学会问自己的问题。 第一,应用层能否实现?你自己都否定了,应用层是不能达到你的目的。很显然,类似流量管理这样重要的系统管理功能,应用层若能完成那还得了? 第二,驱动层完成,那么过滤驱动实现思路基本上是确定的。但是否一个过滤驱动就可以完成?这需要了解具体的过滤驱动能力以及你的目标。比如说,你甚至可能有比360更灵活的目标:能让用户具体选择在特定网络接口上的流量控制。这恐怕需要阅读MSDN,比如:http://msdn.microsoft.com/en-us/library/ff568356(v=vs.85).aspx,并阅读实际的例子驱动,分析它的能力,和你的目标进行对比。 第三,在第二的基础上,估计你有一堆疑问。能做的就是逐一解决疑问。比如,从我这个外行来看,如你自己所提:过滤驱动是工作在任意进程环境下的,如何确定当前网络数据包和特点进程的联系,而且数据包发往什么网络接口(如果你有这个需求的话)。TCP/IP都有端口,端口起初目的就是用来标识进程的。一些辅助工作:获得PID后,还要获取相应的命令行,以便像360那样,能显示对应的进程图标(当然如果你有这个需要的话)。 疑问解决得差不多之后,就可以实际编写、调试了。 最后是一些次要小问题,比如驱动移植到64位操作系统需要数字签名的问题。
hlx_beat 2014-11-08
  • 打赏
  • 举报
回复
LZ 想灭了360?
赵4老师 2014-11-03
  • 打赏
  • 举报
回复
权力越大,责任越大。 推荐楼主阅读《大气功师》
勤奋的小游侠 2014-11-03
  • 打赏
  • 举报
回复
不懂,帮你顶一下
编程实战营 2014-11-03
  • 打赏
  • 举报
回复
引用 4 楼 zhao4zhong1 的回复:
[quote=引用 3 楼 haolipengzhanshen 的回复:] [quote=引用 2 楼 zhao4zhong1 的回复:] 权力越大,责任越大。 推荐楼主阅读《大气功师》
请教下赵老师,能提供点什么思路或者方向吗?[/quote] 我的意思是: 如流量应分配给谁这种本该让系统负责的管理功能,还是让系统去管比较合适,你非要编程去管,纯属自寻烦恼; 象血液该流向哪里这种本该让小脑负责的管理功能,还是让小脑去管比较合适,你非让大脑去管,就会走火入魔。[/quote] 公司老大让实现这功能,获取进程的网络流量信息,类似360的流量防火墙一样获取某个进程的上传和下载网络流量,我也感觉这个是自寻烦恼,但是公司的开发任务哈 我也无奈。。。
赵4老师 2014-11-03
  • 打赏
  • 举报
回复
引用 3 楼 haolipengzhanshen 的回复:
[quote=引用 2 楼 zhao4zhong1 的回复:] 权力越大,责任越大。 推荐楼主阅读《大气功师》
请教下赵老师,能提供点什么思路或者方向吗?[/quote] 我的意思是: 如流量应分配给谁这种本该让系统负责的管理功能,还是让系统去管比较合适,你非要编程去管,纯属自寻烦恼; 象血液该流向哪里这种本该让小脑负责的管理功能,还是让小脑去管比较合适,你非让大脑去管,就会走火入魔。
编程实战营 2014-11-03
  • 打赏
  • 举报
回复
引用 2 楼 zhao4zhong1 的回复:
权力越大,责任越大。 推荐楼主阅读《大气功师》
请教下赵老师,能提供点什么思路或者方向吗?

64,644

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧