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>

VPN サーバーによって VPN クライアントに割り当てられた IPv4 アドレスを指定する IVectorView< Windows.Networking.HostName *> ベクターへのポインター。 このアドレスは、VPN L3 インターフェイスで設定する必要があります。 null場合は、DHCPv4 が使用されます。

assignedClientIPv6list

IVectorView<HostName>

IReadOnlyList<HostName>

VPN サーバーによって VPN クライアントに割り当てられ、VPN L3 インターフェイスで設定する必要がある IPv6 アドレスを指定する、Windows.Networking.HostName 構造体へのポインター。 null場合は、DHCPv6 または RD が使用されます。

vpnInterfaceId
VpnInterfaceId

VpnInterfaceId へのポインター。

routeScope
VpnRouteAssignment

VPN インターフェイスに関連付ける必要がある、または関連付けられていないルートを表す Windows.Networking.VpnRouteAssignment クラスへのポインター

namespaceScope
VpnNamespaceAssignment

DNS およびプロキシ サーバーを含む、VPN チャネルに関連付けられている名前プレフィックスの一覧を表す Windows.Networking.DomainNameAssignment クラスへのポインター。

mtuSize
UInt32

unsigned int

uint32_t

VPN L3 ネットワーク インターフェイスの MTU サイズを指定する UINT16 値。 これは、受信プール内の IVpnPacketBuffers のサイズでもあります。 この値は最大 1400 に構成する必要があります。

maxFrameSize
UInt32

unsigned int

uint32_t

outerTunnelTransportをカウントせずに、VPN プロトコルカプセル化によって定義されたフレームの最大サイズを指定する UINT16 値。 これは、送信プール内の IVpnPacketBuffers のサイズでもあります。 この値は mtuSize + [カプセル化ヘッダーのサイズ] として構成し、<=1500 にする必要があります。 1500 を超える場合は、プラットフォームでフレームサイズが 1500 に制限されるため、mtuSize またはカプセル化ヘッダー のサイズを小さくする必要があります。

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 プラグインとシステム間のアクティビティと相互作用は VPN プロファイルによって制御されるため、接続された VPN プラグインの外部でこの API を呼び出すと失敗します。 VPN プラグインには 1 つの VPN プロファイルしかマップされておらず、呼び出し元が複数のプロファイル オブジェクトを作成する場合、それらはすべて同じ設定を参照するため、プロセスごとに 1 つの VPN プロファイルしか存在できません。

成功すると、outertTunnelTransport の所有権が VPN フレームワークによって転送されます。 同じパラメーターでこのメソッドを複数回呼び出しても効果はありません。 パラメーター値のバリエーションを使用してこのメソッドを複数回呼び出すと、チャネルが最新の値で更新され、他のプロパティが中断されることはありません。

プロセスごとに 1 つの VPN チャネルしか存在しないため、VPN プラグインに割り当てることができる VPN チャネルは 1 つだけです。 mtuSize は、常に maxFrameSize よりも小さくする必要があります。

適用対象