Reputation: 90
I want to create a simple VPN like with User application. I went though different VPN application software. I can see most of them uses a Miniport Virtual adapter for example: OpenVPN use Windows TAP driver. Another VPN software uses both miniport and a filter driver. Note : Filter driver sends and receives data from the real physical Miniport. Isn't?
Now I am beginner in driver development process. I have some doubts regrading that VPN drivers. If I want to create a simple VPN application in С++ on windows environment,
If I create a new virtual driver, should I undergo the HLK/HCK driver signing test for windows 10 and onward?
Upvotes: 2
Views: 1193
Reputation: 415
In general unless an operating system exposes APIs through inbuilt filter drivers you do need to create your own. You will further see 2 basic types of usage.
Virtual Miniport/Nic - A VPN connection creates a virtual interface that can then also be referenced in other decisions like the routing table
Inline - These just sit between your the protocol stack and the physical interface and based on its own logic encrypts and redirects them.
That said atleast on Windows you have a few ways to create a VPN app which is user mode based. The newest and most active development is in the UWP api space of Windows.networking.vpn < https://learn.microsoft.com/en-us/uwp/api/Windows.Networking.Vpn>
Upvotes: 2