VpnChannel.Start 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
建立 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 的指標< Windows.Networking.HostName *> 向量,指定 VPN 伺服器指派給 VPN 用戶端的 IPv4 位址。 地址應該在 VPN L3 介面上設定。 如果 null,則會使用 DHCPv4。
- assignedClientIPv6list
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。 這也是傳送集區中
- optimizeForLowCostNetwork
-
Boolean
bool
布爾值,指定 VPN 架構是否應該監視及使用低成本網路。 如果 TRUE VPN 架構會叫用 VPN 外掛程式的 connect() 回呼,以在舊網路成本降低且新的低成本網路可供使用時重新連線。
- mainOuterTunnelTransport
-
Object
Platform::Object
IInspectable
套接字傳輸 IInspectable 物件。 這個物件可以是 Windows.Networking.Sockets.DatagramSocket 或 Windows.Networking.Sockets.StreamSocket。 此套接字會控制 VPN 伺服器的連線,並將用來傳送封裝的 IP 封包和接收封裝的數據。
- optionalOuterTunnelTransport
-
Object
Platform::Object
IInspectable
套接字傳輸的選擇性 IInspectable 物件。 這個物件可以是 Windows.Networking.Sockets.DatagramSocket 或 Windows.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 。