IVpnPlugIn IVpnPlugIn IVpnPlugIn IVpnPlugIn Interface

Definition

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

public : interface IVpnPlugInpublic interface IVpnPlugInPublic Interface IVpnPlugIn// You can use this interface in JavaScript.
Attributes
Windows 10 requirements
Device family
Windows 10 (introduced v10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduced v1)
Capabilities
networkingVpnProvider

Methods

Connect(VpnChannel) Connect(VpnChannel) Connect(VpnChannel) Connect(VpnChannel)

This method instructs the VPN plug-in to connect to the VPN server and establish the VPN channel.

public : void Connect(VpnChannel channel)public void Connect(VpnChannel channel)Public Function Connect(channel As VpnChannel) As void// You can use this method in JavaScript.
Parameters
channel
VpnChannel VpnChannel VpnChannel VpnChannel

The VPN channel object representing the instance VPN connection of the VPN plug-in to the VPN server.

Additional features and requirements
Device family
Windows 10 (introduced v10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduced v1)
Capabilities
networkingVpnProvider

Decapsulate(VpnChannel, VpnPacketBuffer, VpnPacketBufferList, VpnPacketBufferList) Decapsulate(VpnChannel, VpnPacketBuffer, VpnPacketBufferList, VpnPacketBufferList) Decapsulate(VpnChannel, VpnPacketBuffer, VpnPacketBufferList, VpnPacketBufferList) Decapsulate(VpnChannel, VpnPacketBuffer, VpnPacketBufferList, VpnPacketBufferList)

This method instructs the VPN plug-in to prepare receive a buffer from the VPN server outerTunnelTransport, extract any number of IP packets encapsulated in the buffer, and return the IP packets together with any other reply buffers that are needed to be sent back through the outerTunnelTransport to the VPN server.

public : void Decapsulate(VpnChannel channel, VpnPacketBuffer encapBuffer, VpnPacketBufferList decapsulatedPackets, VpnPacketBufferList controlPacketsToSend)public void Decapsulate(VpnChannel channel, VpnPacketBuffer encapBuffer, VpnPacketBufferList decapsulatedPackets, VpnPacketBufferList controlPacketsToSend)Public Function Decapsulate(channel As VpnChannel, encapBuffer As VpnPacketBuffer, decapsulatedPackets As VpnPacketBufferList, controlPacketsToSend As VpnPacketBufferList) As void// You can use this method in JavaScript.
Parameters
channel
VpnChannel VpnChannel VpnChannel VpnChannel

The VPN channel object representing the instance VPN connection of the VPN plug-in to the VPN server.

encapBuffer
VpnPacketBuffer VpnPacketBuffer VpnPacketBuffer VpnPacketBuffer

A buffer originated from the VPN server and received through the outerTunnelTransport.

decapsulatedPackets
VpnPacketBufferList VpnPacketBufferList VpnPacketBufferList VpnPacketBufferList

An IVpnPacketBuffer chain representing any L3 IP packets extracted and decapsulated from the buffer and which need to be injected through the VPN interface to be received by the client machine's TCP/IP stack.

controlPacketsToSend
VpnPacketBufferList VpnPacketBufferList VpnPacketBufferList VpnPacketBufferList

An IVpnPacketBuffer chain representing any control messages that VPN plug-in is required by its protocol specification to reply back to the VPN server.

Additional features and requirements
Device family
Windows 10 (introduced v10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduced v1)
Capabilities
networkingVpnProvider

Remarks

If an error occurs the packets will simply be dropped.

The VPN framework will send all the VpnPacketBufferList chained on decapsulatedPackets as unique IP packets to the VPN interface.

Disconnect(VpnChannel) Disconnect(VpnChannel) Disconnect(VpnChannel) Disconnect(VpnChannel)

This method instructs the VPN plug-in to disconnect from the VPN server and destroy the VPN channel.

public : void Disconnect(VpnChannel channel)public void Disconnect(VpnChannel channel)Public Function Disconnect(channel As VpnChannel) As void// You can use this method in JavaScript.
Parameters
channel
VpnChannel VpnChannel VpnChannel VpnChannel

The VPN channel object representing the instance VPN connection of the VPN plug-in to the VPN server.

Additional features and requirements
Device family
Windows 10 (introduced v10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduced v1)
Capabilities
networkingVpnProvider

Encapsulate(VpnChannel, VpnPacketBufferList, VpnPacketBufferList) Encapsulate(VpnChannel, VpnPacketBufferList, VpnPacketBufferList) Encapsulate(VpnChannel, VpnPacketBufferList, VpnPacketBufferList) Encapsulate(VpnChannel, VpnPacketBufferList, VpnPacketBufferList)

This method instructs the VPN plug-in to prepare the indicated L3 IP packet for transmission to the VPN server. The process might include any encapsulation specific to the VPN protocol.

public : void Encapsulate(VpnChannel channel, VpnPacketBufferList packets, VpnPacketBufferList encapulatedPackets)public void Encapsulate(VpnChannel channel, VpnPacketBufferList packets, VpnPacketBufferList encapulatedPackets)Public Function Encapsulate(channel As VpnChannel, packets As VpnPacketBufferList, encapulatedPackets As VpnPacketBufferList) As void// You can use this method in JavaScript.
Parameters
channel
VpnChannel VpnChannel VpnChannel VpnChannel

The VPN channel object representing the instance VPN connection of the VPN plug-in to the VPN server.

packets
VpnPacketBufferList VpnPacketBufferList VpnPacketBufferList VpnPacketBufferList

An L3 IP packets originated by the client machine TCP/IP stack and that needs to be processed to be sent to the corporate network.

encapulatedPackets
VpnPacketBufferList VpnPacketBufferList VpnPacketBufferList VpnPacketBufferList

An buffer containing an encapsulated IP packet (framed in a specific VPN protocol message and or potentially encrypted) that is ready to be sent to the VPN server through the outerTunnelTransport.

Additional features and requirements
Device family
Windows 10 (introduced v10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduced v1)
Capabilities
networkingVpnProvider

Remarks

If an error occurs the packet will be simply dropped. Once the method returns the ownership of any IVpnPacketBuffer objects returned in encapulatedPackets and the original IP packet is transferred to the VPN framework. The VPN framework will send the returned IVpnPacketBuffer *** encapulatedPackets* directly into the **outerTunnelTransport.

GetKeepAlivePayload(VpnChannel, VpnPacketBuffer) GetKeepAlivePayload(VpnChannel, VpnPacketBuffer) GetKeepAlivePayload(VpnChannel, VpnPacketBuffer) GetKeepAlivePayload(VpnChannel, VpnPacketBuffer)

This method instructs the VPN plug-in to compute and return a Keep alive payload ready to be sent to the VPN server.

public : void GetKeepAlivePayload(VpnChannel channel, VpnPacketBuffer keepAlivePacket)public void GetKeepAlivePayload(VpnChannel channel, VpnPacketBuffer keepAlivePacket)Public Function GetKeepAlivePayload(channel As VpnChannel, keepAlivePacket As VpnPacketBuffer) As void// You can use this method in JavaScript.
Parameters
channel
VpnChannel VpnChannel VpnChannel VpnChannel

The VPN channel object representing the instance VPN connection of the VPN plug-in to the VPN server.

keepAlivePacket
VpnPacketBuffer VpnPacketBuffer VpnPacketBuffer VpnPacketBuffer

An VPN protocol specific message payload used by the VPN Plug-in to indicate to the server that the client and its VPN connection are still alive.

Additional features and requirements
Device family
Windows 10 (introduced v10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduced v1)
Capabilities
networkingVpnProvider

Remarks

This method is only called at a time determined by the VPN infrastructure to be the optimal for the network in which the client machine is connected. If an error occurs the VPN infrastructure will skip sending the keep alive payload.