我需要知道我可以使用哪些 API 来完成以下操作:
- 我有一个在 Windows 机器上运行的现有进程(称为应用程序 A),它可以是这台 Windows 机器上的任何现有进程。
- 我想编写另一个应用程序来限制 A 的带宽使用(称为应用程序 B)。
- B 应该能够分别限制 A 的累积上传和下载速度。例如,如果 A 分配给上传的最大流量为 5 Kbps,那么 A 的所有上传流将被限制为 5 Kbps 的累积量。
我的要求:
- 我不能使用内核模式驱动程序。
- 我需要使它成为一个通用的解决方案,以便 B 可以限制系统上的任何其他进程(换句话说,我不能更改 A 的源代码)。
我试图对此进行研究,尤其是在 Stack Overflow 上,但找不到任何对我的案例有用的东西:
- 我已经看到这个在 Stream 对象周围使用 ThrottledStream 类包装器的示例,该对象在使用时会引入节流,但我需要这是一个通用应用程序,所以我不能使用这种方法(我无法更改 A 的源代码) .
- 我已经看到这个问题的答案是关于使用 Windows 过滤平台 API 的。不幸的是,我有一个要求是我绝对不能使用内核模式驱动程序来完成这个,我的理解是 WFP API 需要一个。
有谁知道我可以使用哪些 API 来满足我的特定带宽限制要求,以使 B 限制 A 的带宽使用?