次の方法で共有


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の実装からのみ呼び出すことができます。 アプリがフォアグラウンドにある間は、通常の Connect タイムアウトが一時停止されます。

ActivateForeground 呼び出しは、長い一時停止 (約 10 分) がある場合にキャンセルされます。 起動できない場合、プラグインは、ユーザー インターフェイス (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>)

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

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 プラグインによって使用されます。

適用対象