VpnChannel クラス

定義

VPN チャネルを作成および破棄するメソッドと、バッファー管理を実行するメソッドを提供します。 VPN チャネルは、VPN プラグインの VPN サーバー ソケットとクライアント コンピューターのネットワーク スタックの間のネットワーク トラフィック データ フローをリンクするシステム内のオブジェクトです。

public ref class VpnChannel sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.MTA)]
class VpnChannel final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.MTA)]
public sealed class VpnChannel
Public NotInheritable Class VpnChannel
継承
Object Platform::Object IInspectable VpnChannel
属性

Windows の要件

デバイス ファミリ
Windows 10 (10.0.10240.0 で導入)
API contract
Windows.Foundation.UniversalApiContract (v1.0 で導入)
アプリの機能
networkingVpnProvider

注釈

バージョン履歴

Windows のバージョン SDK バージョン 追加された値
1803 17134 AddAndAssociateTransport
1803 17134 CurrentRequestTransportContext
1803 17134 GetSlotTypeForTransportContext
1803 17134 ReplaceAndAssociateTransport
1803 17134 StartReconnectingTransport
1803 17134 StartWithTrafficFilter(IEnumerable<HostName,IEnumerable<> HostName,VpnInterfaceId,VpnRouteAssignment,VpnDomainNameAssignment,UInt32,UInt32,Boolean,IEnumerableIEnumerable<> オブジェクト>,VpnTrafficFilterAssignment)

プロパティ

Configuration

VpnChannel の構成に対応する VpnChannelConfiguration オブジェクトを取得または設定します。これにより、VPN サーバーとの通信を確立する方法が決まります。

CurrentRequestTransportContext

ホストまたはサーバーの名前など、使用中のトランスポート コンテキスト オブジェクトを取得します。

Id

VPN チャネルの一意のインスタンス ID を取得します。 これは、2 つの VPN 接続インスタンス間の多重解除操作を簡略化するために使用できます。

PlugInContext

セッションの進行中に後で使用するために、VPN プラグインが内部状態を VpnChannel オブジェクトに関連付けるために使用できるコンテキスト オブジェクトを取得または設定します。

SystemHealth

クライアント コンピューターの正常性ステートメントを取得します。

メソッド

ActivateForeground(String, ValueSet)

フォアグラウンドで VPN アプリをアクティブにします。 これは、ユーザーが資格情報を入力できるようにするためによく使用されます。 ActivateForeground は、IVpnPlugin.Connect の実装からのみ呼び出すことができます。 アプリがフォアグラウンドにある間は、通常の 接続 タイムアウトが一時停止されます。

長時間の一時停止 (約 10 分) がある場合、 ActivateForeground 呼び出しは取り消されます。 起動できない場合、プラグインは、ユーザー インターフェイス (UI) を必要としない認証方法を理想的にサポートする必要があります。

Security Assertion Markup Language (SAML) や Azure Active Directory (AAD) 認証などの Web ベースの認証スキームをサポートすることを目的としています。

AddAndAssociateTransport(Object, Object)

VPN プラグインを VPN サーバーに通信するトランスポート リンクとして、VPN フレームワークで使用するトランスポートを準備、マーク、および作成します。 この呼び出しは、VPN フレームワーク API に関連する他の操作の前に実行する必要があります。

AppendVpnReceivePacketBuffer(VpnPacketBuffer)

受信 VpnPacketBuffer オブジェクトをチャネルに追加します。

AppendVpnSendPacketBuffer(VpnPacketBuffer)

チャネルに送信 VpnPacketBuffer オブジェクトを追加します。

AssociateTransport(Object, Object)

VPN フレームワークで使用するトランスポートを、VPN プラグインを VPN サーバーに通信するトランスポート リンクとして準備し、マークします。 この呼び出しは、VPN フレームワーク API に関連する他の操作の前に実行する必要があります。

FlushVpnReceivePacketBuffers()

追加された受信パケット バッファーをフラッシュします。 AppendVpnReceivePacketBuffer に関するページを参照してください。

FlushVpnSendPacketBuffers()

追加された送信パケット バッファーをフラッシュします。 「AppendVpnSendPacketBuffer」を参照してください。

GetSlotTypeForTransportContext(Object)

指定したトランスポート コンテキスト オブジェクトのスロットの種類 (ハードウェアまたはソフトウェア) を取得します。

GetVpnReceivePacketBuffer()

VPN サーバーからローカル ネットワーク スタックへの受信パケットのカプセル化解除またはインジェクションで使用される受信パケット バッファー プールから VpnPacketBuffer オブジェクトを要求します

GetVpnSendPacketBuffer()

クライアント ネットワーク スタックから VPN サーバーへのデータ パケットのカプセル化と送信に使用する送信パケット バッファー プールから VpnPacketBuffer オブジェクトを取得します。

LogDiagnosticMessage(String)

診断メッセージをシステム ログに書き込みます。

ProcessEventAsync(Object, Object)

保留中の VpnChannel イベントを処理します。

ReplaceAndAssociateTransport(Object, Object)

VPN プラグインを VPN サーバーに通信するトランスポート リンクとして、既存のトランスポートを VPN フレームワークで使用する新しいトランスポートに置き換えます。

RequestCredentials(VpnCredentialType, Boolean, Boolean, Certificate)

ユーザーから資格情報を収集するように VPN プラットフォームに要求します。 プラグインでは、収集する資格情報の種類と形式を指定できます。 結果は、変更と有効期限のケースの種類とセカンダリ資格情報に応じて、メイン資格情報を含む オブジェクトになります。

RequestCredentialsAsync(VpnCredentialType)

特定の資格情報の種類の資格情報をユーザーから収集するように VPN プラットフォームに要求します。

RequestCredentialsAsync(VpnCredentialType, UInt32)

ユーザーから資格情報を収集するように VPN プラットフォームに要求します。 プラグインでは、収集する資格情報の種類と形式を指定できます。 結果は、種類に応じてメイン資格情報と、変更と有効期限のケースのセカンダリ資格情報を含む オブジェクトです。

RequestCredentialsAsync(VpnCredentialType, UInt32, Certificate)

ユーザーから資格情報を収集するための VPN プラットフォーム。 資格情報または同意を取得するためにユーザー操作が必要な場合、プラットフォームは必要なユーザー操作を提供します。 VPN プラグインは、ユーザー操作を呼び出さない場合でも、任意の種類の資格情報を使用する前に資格情報を要求する必要があります。

RequestCustomPrompt(IVectorView<IVpnCustomPrompt>)

サポートされていません。

RequestCustomPromptAsync(IVectorView<IVpnCustomPromptElement>)

プロンプトを表示して、ユーザーに情報を要求します。 混合できる prompt 要素を使用して、ユーザーに完全なプロンプトを作成できるようにします。 ユーザーによって提供された入力は、指定されたオブジェクトの呼び出し元に返されます。

RequestVpnPacketBuffer(VpnDataPathType, VpnPacketBuffer)

指定したプールから IVpnPacketBuffer を要求します。 送信パスには 1 つの IVpnPacketBuffer プールがあり、受信パスにはもう 1 つの IVpnPacketBuffer プールがあります。

SetAllowedSslTlsVersions(Object, Boolean)

サポートされていません。

SetErrorMessage(String)

サポートされていません。

Start(IVectorView<HostName>, IVectorView<HostName>, VpnInterfaceId, VpnRouteAssignment, VpnNamespaceAssignment, UInt32, UInt32, Boolean, Object, Object)

VPN プラグインで使用する VPN チャネルを作成します。 また、企業ネットワークを表示できるように、クライアント コンピューター内のアプリケーション用の L3 ネットワーク インターフェイスも作成します。

StartExistingTransports(IVectorView<HostName>, IVectorView<HostName>, VpnInterfaceId, VpnRouteAssignment, VpnDomainNameAssignment, UInt32, UInt32, Boolean)

VPN プラグインで使用する VPN チャネルを作成します。 また、企業ネットワークを表示できるように、クライアント コンピューター内のアプリケーション用の L3 ネットワーク インターフェイスも作成します。

StartReconnectingTransport(Object, Object)

ソケット トランスポートを再接続します。 トランスポートとトランスポートのコンテキストは、ソケット トランスポートの再接続で変更できる唯一のパラメーターです。

重要

この API は実装されていないため、呼び出しないことをお勧めします。

StartWithMainTransport(IVectorView<HostName>, IVectorView<HostName>, VpnInterfaceId, VpnRouteAssignment, VpnDomainNameAssignment, UInt32, UInt32, Boolean, Object)

VPN プラグインで使用する VPN チャネルを作成します。 また、企業ネットワークを表示できるように、クライアント コンピューター内のアプリケーション用の L3 ネットワーク インターフェイスも作成します。

StartWithTrafficFilter(IIterable<HostName>, IIterable<HostName>, VpnInterfaceId, VpnRouteAssignment, VpnDomainNameAssignment, UInt32, UInt32, Boolean, IIterable<Object>, VpnTrafficFilterAssignment)

VPN プラグインで使用される任意の数のトランスポートの VPN チャネルを作成します。 また、企業ネットワークを表示できるように、クライアント コンピューター内のアプリケーション用の L3 ネットワーク インターフェイスも作成します。 これにより、アプリごとの VPN シナリオで使用するトラフィック フィルターを指定できます。

StartWithTrafficFilter(IVectorView<HostName>, IVectorView<HostName>, VpnInterfaceId, VpnRouteAssignment, VpnDomainNameAssignment, UInt32, UInt32, Boolean, Object, Object, VpnTrafficFilterAssignment)

VPN プラグインで使用する VPN チャネルを作成します。 また、企業ネットワークを表示できるように、クライアント コンピューター内のアプリケーション用の L3 ネットワーク インターフェイスも作成します。 これにより、アプリごとの VPN シナリオで使用するトラフィック フィルターを指定できます。

Stop()

以前に確立された VPN チャネル オブジェクトを破棄します。 VPN サーバーへの outerTunnelTransport 接続の関連付けを解除して閉じます。

TerminateConnection(String)

VPN プラグインがエラー メッセージを示し、 IVpnPlugin.Connect メソッド内で実行された接続試行を終了できるようにします。 再接続ケースでは呼び出さないでください。

イベント

ActivityChange

サポートされていません。

ActivityStateChange

チャネルのアクティビティ状態が変更されたときに発生するイベント。 VPN プラグインによって、チャネルがトラフィックでアクティブであるかアイドル状態であるかを判断するために使用されます。

適用対象