我可以创建没有虚拟微型端口驱动程序的VPN应用程序吗?

时间:2017-05-31 07:11:33

标签: c++ windows ethernet wdk ndis

我想用User应用程序创建一个简单的VPN。我去了不同的VPN应用软件。我可以看到他们中的大多数使用Miniport虚拟适配器,例如: OpenVPN使用Windows TAP驱动程序。另一个VPN软件使用微型端口和过滤器驱动程序。 注意:过滤器驱动程序从真实物理微型端口发送和接收数据。是不是?

现在我是驱动程序开发过程的初学者。我有一些疑问重新调整VPN驱动程序。如果我想在Windows环境下的С++中创建一个简单的VPN应用程序,

  1. 为什么大多数VPN软件都使用虚拟适配器和过滤器 司机(可选)?
  2. 是否必须为VPN创建虚拟微型端口适配器 应用?
  3. 我可以创建仅带过滤器的VPN应用程序     驱动程序? (读/写包)
  4. 如果我创建一个新的虚拟驱动程序,是否应该对Windows 10及更高版本进行HLK / HCK驱动程序签名测试?

1 个答案:

答案 0 :(得分:1)

一般情况下,除非操作系统通过内置的过滤器驱动程序公开API,否则您需要创建自己的API。您将进一步了解2种基本类型的用法。

  • Virtual Miniport / Nic - VPN连接创建一个虚拟接口,然后也可以在路由表等其他决策中引用

  • 内联 - 它们位于您的协议堆栈和物理接口之间,并根据自己的逻辑加密并重定向它们。

至少在Windows上说你有几种方法来创建一个基于用户模式的VPN应用程序。最新且最活跃的开发是在Windows.networking.vpn的UWP api空间中。 https://docs.microsoft.com/en-us/uwp/api/Windows.Networking.Vpn>