Kernel mode windows driver

Hi, guys

I'm a beginner in Windows driver development.

I'm making a driver that manages network traffic. I need expert advice. I need the following functions.

  • The ability to triplicate received packets and send them to different subnets.

  • The ability to modify the destination IP address of the data to be sent and send it to a third IP address.

  • The ability to randomly modify the data fields of a specific packet in the driver.

For these functions, I want to set the direction of which method to use at which layer level. I've researched methods such as WFP, IP tunnel, and Layer 2 miniport. Thank you in advance for your response.