I need to know which APIs I can use to do the following:
- I have an existing process running on a Windows machine (call this app A), which can be any existing process on this Windows machine.
- I want to encode another application to throttle bandwidth usage A (call it application B).
- B must be able to throttle the cumulative download and download speeds separately. For example, if A has a maximum of 5 Kbit / s allocated for download, then all A download flows will be limited to 5 Kbit / s.
My requirements:
- I can not use the kernel mode driver.
- I need to make this a universal solution, so B can throttle any other process in the system (in other words, I cannot change the source code of A).
I tried to learn this, especially in Stack Overflow, but could not find anything useful for my case:
- I saw this example of using the wrapper of the ThrottledStream class around the Stream object, which will introduce throttling when it is used, but I need this to be a universal application, so I cannot use this approach (I cannot change the source code A).
- I saw this question that answers when talking about using the Windows Filtering API. Unfortunately, the requirement that I have is that I absolutely cannot use the kernel mode driver for this, and I understand that this requires the WFP API.
Does anyone know which APIs I can use for my specific bandwidth throttling requirements to force B to throttle bandwidth usage A?
source share