因为个人兴趣需要开发一个用C#编写的应用,带有下载网络资源的功能(通过调用第三方库),并且需要对这个应用进行带宽限制。
我已经花了几天时间在百度和谷歌搜索相关的问题,但是都没有满意的答案。有些说可通过[设置下载流的接收数据和Sleep时间做循环(C#)](https://stackoverflow.com/questions/371032/bandwidth-throttling-in-c-sharp)达到效果,有的说利用QOS、WFP、WinPcap,但这些我看了要不需要可以控制下载流,要不只能实现对流量的监控而不能限制带宽。
看了很多问答得出的结论基本上是,要实现对进程带宽的限制,需要另外用C++写一个相关的驱动。但是我在驱动方面一点经验都没有,平常也很少C++开发的经验,近几年基本只用C#,C/C++的水平也只是基础语法(包括指针)。
我稍微看了下《Windows驱动开发技术详解》《Windows内核编程》的目录,内容巨量,我将近30了,没有这样的时间和精力把书刨完,并且即使刨完也未必能开发出这个驱动,但又很想实现这个功能。
所以,我想知道我需要准备哪些知识才能开发这样的一个可对进程进行带宽限制的驱动?我愿意花时间去准备,但需要一个方向,希望有大佬给我点提示。
(有一点是,其实读大学的时候用过360安全卫士里的流量防火墙,它就有对进程进行带宽限制的功能,而且我了解到它也是通过驱动实现的)