The free OSR Learning Library has more than 50 articles on a wide variety of topics about writing and debugging device drivers and Minifilters. From introductory level to advanced. All the articles have been recently reviewed and updated, and are written using the clear and definitive style you've come to expect from OSR over the years.
Check out The OSR Learning Library at: https://www.osr.com/osr-learning-library/
We have a WFP callout driver that receives packets at a transport layer and reinjects after processing at a network layer. Most of our packet processing is at the Userland service. Whenever we get a packet at callout, we redirect packet bytes and some metadata info like IP, Port, direction, etc.
Once processing is done at user mode, we either send a packet to our tunnel or redirect back to our driver for reinjection (bypass). We create new NBL (FwpsAllocateNetBufferAndNetBufferList0) and reinject back using either FwpsInjectNetworkSendAsync0 or FwpsInjectNetworkReceiveAsync0.
As reinjected NBL is created by our driver, actual metadata information for NBL is lost and all below drivers get process name as SYSTEM. Is there any way, we can add process information (name or id) to newly created NBL?
Please feel free to redirect if this is already explained. Thanks for the help and support. Apologies if I missed adding any required information.
|Upcoming OSR Seminars|
|OSR has suspended in-person seminars due to the Covid-19 outbreak. But, don't miss your training! Attend via the internet instead!|
|Internals & Software Drivers||30 Nov 2020||LIVE ONLINE|
|Writing WDF Drivers||7 Dec 2020||LIVE ONLINE|
|Developing Minifilters||Early 2021||LIVE ONLINE|