Windows.Networking.Vpn Windows.Networking.Vpn Windows.Networking.Vpn Windows.Networking.Vpn Namespace

This API enables you to create, edit and manage Virtual Private Network (VPN) connections, and to write plugins for controlling a VPN connection using the Windows VPN Platform.

To use this API, you must specify the networkingVpnProvider capability in your application manifest. To manually add this capability, copy the following line into your manifest, inside the <Capabilities> tag.


<rescap:Capability Name="networkingVpnProvider" />

If your app is using this API and you wish to publish your app to the Microsoft Store, special permissions must be provisioned for your Microsoft developer account, or the VPN calls will fail at runtime. This permission is not needed if the application is side-loaded or installed through a different method.

To request permission to release your VPN app through the Microsoft Store, go to the Windows Developer Support page and choose Submit an Incident. Indicate your request to publish your VPN Plug-In through the Microsoft Store.

If you have any questions about the VPN API, contact msftvpnapi@microsoft.com.

Classes

Represents an application identifier, which can be a file path, a package family name, or a fully qualified binary name (FQBN) string.

Provides methods to create and destroy a VPN channel, and methods to perform buffer management. A VPN channel is the object in the system that links the network traffic data flow between the VPN plug-in's VPN server socket and the client machine network stack.

VpnChannelActivityEventArgs is not supported and may be altered or unavailable in the future. Instead, use VpnChannelActivityStateChangedArgs.

Represents the VpnChannelActivityStateChangedArgs event specifying the new VPN channel state (idle or active).

The configuration of the VpnChannel, which dictates how to establish the communication with the VPN server.

Represents the credentials requested and provided by the platform. This class holds username, password, PIN, OTP, and any additional PIN or certificate to which access has been granted.

VpnCustomCheckBox is not supported and may be altered or unavailable in the future. Instead, use VpnCustomPromptBooleanInput.

VpnCustomComboBox is not supported and may be altered or unavailable in the future. Instead, use VpnCustomPromptOptionSelector.

VpnCustomEditBox is not supported and may be altered or unavailable in the future. Instead, use VpnCustomPromptTextInput.

VpnCustomErrorBox is not supported and may be altered or unavailable in the future. Instead, use VpnCustomPromptText.

Represents a Boolean type of UI control prompt required from the user. This is typically a checkbox. This is used in the construction of custom prompts used in the RequestCustomPromptAsync(Windows.Foundation.Collections.IVectorView{Windows.Networking.Vpn.IVpnCustomPromptElement}) method.

Represents a multiple choice UI control prompt required from the user. This is typically a combo box. This is used in the construction of custom prompts used in the RequestCustomPromptAsync(Windows.Foundation.Collections.IVectorView{Windows.Networking.Vpn.IVpnCustomPromptElement}) method.

Represents a text UI element used in the RequestCustomPromptAsync(Windows.Foundation.Collections.IVectorView{Windows.Networking.Vpn.IVpnCustomPromptElement}) method.

Represents a text input UI element used in the RequestCustomPromptAsync(Windows.Foundation.Collections.IVectorView{Windows.Networking.Vpn.IVpnCustomPromptElement}) method.

VpnCustomTextBox is not supported and may be altered or unavailable in the future. Instead, use VpnCustomPromptText.

Contains VPN domain name policies, like name resolution, namespace configuration, and web proxies.

Specifies the name policy for a specific namespace. It can specify the DNS servers to use for name resolution of the namespace, the web proxies to use when connecting to the namespace, or whether it should be exempted from the policy itself.

Represents an interface ID used in the construction and assignment of an IPv6 address to the VPN interface. The ID contained in this class fills the interface ID portion of the IPv6 address.

Allows the creation, deletion, edit, connect, and disconnect flows for VPN. These can be used to manage the lifecycle of a VPN profile, and to create a custom VPN connection manager.

VpnNamespaceAssignment is not supported and may be altered or unavailable in the future. Instead, use VpnDomainNameAssignment.

VpnNamespaceInfo is not supported and may be altered or unavailable in the future. Instead, use VpnDomainNameInfo.

Represents a profile for an OS Native/Inbox VPN protocol.

Used by the platform to manage a memory buffer. VpnPacketBuffer allows buffers to be chained together in a IVpnPacketBufferList object list to be sent or received in a specific order.

Used to manage VpnPacketBuffer objects.

VpnPickedCredential is not supported and may be altered or unavailable in the future. Instead, use VpnCredential.

Represents a VPN plug-in profile.

Represents a route relative to the VPN channel. It is composed of an address and a prefix size to identify the subnet being routed. The route can then be either included or excluded from the VPN channel scope.

Represents the list of routes assigned to the VPN channel for the correct flow and redirection of traffic.

Allows access to the security health of the system device.

Defines the traffic filtering properties (including per app VPN). A description of the type of network traffic that will be allowed over the VPN connection, such as a specific application and protocol allowed for the connection.

Allows the specification of a set of traffic filters as policy to a VPN channel.

Interfaces

Provides static functions for VPN plug-ins.

Provides an interface for the VPN platform to support requested credentials.

Not supported.

Provides a common interface for all UI element objects used in the RequestCustomPromptAsync(Windows.Foundation.Collections.IVectorView{Windows.Networking.Vpn.IVpnCustomPromptElement}) method.

Factory to create VpnDomainNameInfo objects.

Factory to create VpnInterfaceId objects.

IVpnNamespaceInfoFactory is not supported and may be altered or unavailable in the future. Instead, use IVpnDomainNameInfoFactory.

This interface is reserved for system use.

Provides an interface to implement specific third party VPN client operations.

Exposes the VpnProfile base object.

Factory to create VpnRoute objects.

Enums

Specifies the type of AppId understood by the VPN platform.

Specifies the type of authentication methods allowed by the operating system native VPN protocols.

Specifies the type of activity events.

Specifies the values defining whether a requested credential is a retry case, or should be used for single sign on.

Specifies the types of credentials that can be requested by the VPN platform.

VpnDataPathType is not supported and may be altered or unavailable in the future.

Describes whether a name is a domain name suffix or a fully qualified domain name.

Specifies the IP protocols (numeric values).

Values used to report the current status of a VPN profile.

Describes the known VPN management errors.

Specifies the native protocol types.

Describes the possible states of the VPN packet buffer.

Specifies the routing policy type.