我想实现以下内容:
- 我的应用程序在Windows机器上运行(称其为应用程序A)。
- 我可以修改应用程序A的源代码以引入带宽限制。
- 我希望能够重用我的带宽限制代码并将其放入我拥有的任何其他应用程序中(换句话说,我希望尝试在应用程序域级别上限制带宽,以便不必重构现有应用程序以进行带宽限制)。
- 我想单独限制A的累积上传和下载速度。例如,如果A允许最大上传速度为5 Kbps,则所有A的上传流将被限制在累积5 Kbps的数量。
我的要求:
- 我不能使用内核模式驱动程序。
- 我需要在应用程序域级别上添加限制。
我已经尝试研究这个问题,特别是在Stack Overflow上,但没有找到适合我的情况的有用信息:
- 我看到了这个示例,它使用ThrottledStream类包装Stream对象,在使用时会引入限制,但我需要在域级别上实现,采取这种方法是有问题的,因为它需要我重构其他应用程序中的大量现有代码。
- 我看到了这个问题,其答案讲述了使用Windows Filtering Platform API。不幸的是,我有一个要求,绝对不能使用内核模式驱动程序来完成此任务,而我的理解是WFP API需要一个。
有没有人知道如何实现我的特定带宽限制要求,以便在应用程序域级别上限制应用程序?