I am trying to port Automatic Bandwidth Manager on to Windows (from Linux).
My question is about best shaping approach & duplication of data
In Linux we have packet_id and we can delay the injection of packet into kernel by calling (after delay) set_verdict(packet_id) function. (little simplified)
in winpkfilter how to achieve this optimally?
My plan is to create a simple data structure
then store all packets for which decision is delayed into the memory and release the packet by retrieving the data from the structure as mentioned above.
This way I am storing packet plus overhead. But if the packet data is stored somewhere else by winpkfilter framework, I will be duplicating data in memory. I rather use ID or ptr of some sort to identify the packet to release.
I tried unsuccessfully to get info from forums.
If I am asking the wrong question, my apologies. In such case, please direct me to correct url of such information.
I believe that storing of packet information in the winpkfilter framework is unlikely as not releasing packet (as in passthru) is not informed back to the framework (like drop indication).
Is there any information which I am missing completely?