共用方式為


VpnChannel.Start 方法

定義

建立 VPN 外掛程式要使用的 VPN 通道。 它也會建立 L3 網路介面,讓用戶端電腦中的應用程式能夠查看公司網路。

public:
 virtual void Start(IVectorView<HostName ^> ^ assignedClientIPv4list, IVectorView<HostName ^> ^ assignedClientIPv6list, VpnInterfaceId ^ vpnInterfaceId, VpnRouteAssignment ^ routeScope, VpnNamespaceAssignment ^ namespaceScope, unsigned int mtuSize, unsigned int maxFrameSize, bool optimizeForLowCostNetwork, Platform::Object ^ mainOuterTunnelTransport, Platform::Object ^ optionalOuterTunnelTransport) = Start;
/// [Windows.Foundation.Metadata.Overload("Start")]
void Start(IVectorView<HostName> const& assignedClientIPv4list, IVectorView<HostName> const& assignedClientIPv6list, VpnInterfaceId const& vpnInterfaceId, VpnRouteAssignment const& routeScope, VpnNamespaceAssignment const& namespaceScope, uint32_t const& mtuSize, uint32_t const& maxFrameSize, bool const& optimizeForLowCostNetwork, IInspectable const& mainOuterTunnelTransport, IInspectable const& optionalOuterTunnelTransport);
[Windows.Foundation.Metadata.Overload("Start")]
public void Start(IReadOnlyList<HostName> assignedClientIPv4list, IReadOnlyList<HostName> assignedClientIPv6list, VpnInterfaceId vpnInterfaceId, VpnRouteAssignment routeScope, VpnNamespaceAssignment namespaceScope, uint mtuSize, uint maxFrameSize, bool optimizeForLowCostNetwork, object mainOuterTunnelTransport, object optionalOuterTunnelTransport);
function start(assignedClientIPv4list, assignedClientIPv6list, vpnInterfaceId, routeScope, namespaceScope, mtuSize, maxFrameSize, optimizeForLowCostNetwork, mainOuterTunnelTransport, optionalOuterTunnelTransport)
Public Sub Start (assignedClientIPv4list As IReadOnlyList(Of HostName), assignedClientIPv6list As IReadOnlyList(Of HostName), vpnInterfaceId As VpnInterfaceId, routeScope As VpnRouteAssignment, namespaceScope As VpnNamespaceAssignment, mtuSize As UInteger, maxFrameSize As UInteger, optimizeForLowCostNetwork As Boolean, mainOuterTunnelTransport As Object, optionalOuterTunnelTransport As Object)

參數

assignedClientIPv4list

IVectorView<HostName>

IReadOnlyList<HostName>

IVectorView 的指標< Windows.Networking.HostName *> 向量,指定 VPN 伺服器指派給 VPN 用戶端的 IPv4 位址。 地址應該在 VPN L3 介面上設定。 如果 null,則會使用 DHCPv4。

assignedClientIPv6list

IVectorView<HostName>

IReadOnlyList<HostName>

Windows.Networking.HostName 的指標 結構,指定 VPN 伺服器指派給 VPN 用戶端的 IPv6 位址,而且應該設定在 VPN L3 介面上。 如果 null,則會使用 DHCPv6 或 RD。

vpnInterfaceId
VpnInterfaceId

VpnInterfaceId 的指標。

routeScope
VpnRouteAssignment

Windows.Networking.VpnRouteAssignment 類別的指標,代表應該與 VPN 介面相關聯/未關聯的路由

namespaceScope
VpnNamespaceAssignment

Windows.Networking.DomainNameAssignment 類別的指標,代表與 VPN 信道相關聯的名稱前置詞清單,包括其 DNS 和 Proxy 伺服器。

mtuSize
UInt32

unsigned int

uint32_t

指定 VPN L3 網路介面 MTU 大小的 UINT16 值。 這也是接收集區中 IVpnPacketBuffers 的大小。 此值應該設定為最多 1400。

maxFrameSize
UInt32

unsigned int

uint32_t

UINT16 值,指定 VPN 通訊協定封裝所定義的框架大小上限,而不需要計算 outerTunnelTransport。 這也是傳送集區中 IVpnPacketBuffers 的大小。 此值應設定為 mtuSize + [封裝標頭的大小],且應 <=1500。 如果 mtuSize 或封裝標頭大小大於 1500,則平臺會將框架大小限制為 1500。

optimizeForLowCostNetwork
Boolean

bool

布爾值,指定 VPN 架構是否應該監視及使用低成本網路。 如果 TRUE VPN 架構會叫用 VPN 外掛程式的 connect() 回呼,以在舊網路成本降低且新的低成本網路可供使用時重新連線。

mainOuterTunnelTransport
Object

Platform::Object

IInspectable

套接字傳輸 IInspectable 物件。 這個物件可以是 Windows.Networking.Sockets.DatagramSocketWindows.Networking.Sockets.StreamSocket。 此套接字會控制 VPN 伺服器的連線,並將用來傳送封裝的 IP 封包和接收封裝的數據。

optionalOuterTunnelTransport
Object

Platform::Object

IInspectable

套接字傳輸的選擇性 IInspectable 物件。 這個物件可以是 Windows.Networking.Sockets.DatagramSocketWindows.Networking.Sockets.StreamSocket。 此套接字會控制 VPN 伺服器的連線,並將用來傳送封裝的 IP 封包和接收封裝的數據。

屬性

Windows 需求

應用程式功能
networkingVpnProvider

備註

如果函式成功,傳回值會 S_OK,否則函式會傳回描述特定失敗的錯誤 hresult 值。 如果外掛程式未連線,錯誤將會 E_ACCESSDENIED

注意

線上 VPN 外掛程式外部對此 API 的任何呼叫都會失敗,因為 VPN 外掛程式與系統之間的活動和互動是由 VPN 設定檔所控制。 每個進程只能有一個 VPN 配置檔,因為 VPN 外掛程式只對應一個 VPN 設定檔,而且如果呼叫者要建立多個設定檔物件,它們全都會參考相同的設定。

成功時,VPN 架構會傳輸 outertTunnelTransport 的擁有權。 使用相同參數多次呼叫此方法將不會有任何作用。 使用參數值的變化多次呼叫此方法,可確保通道會以最新的值更新,而不會中斷其他屬性。

每個進程只能有一個 VPN 通道,因此 VPN 外掛程式只能指派一個 VPN 通道。 mtuSize 必須一律小於 maxFrameSize

適用於