次の方法で共有


VpnChannel.RequestVpnPacketBuffer(VpnDataPathType, VpnPacketBuffer) メソッド

定義

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

public:
 virtual void RequestVpnPacketBuffer(VpnDataPathType type, [Out] VpnPacketBuffer ^ & vpnPacketBuffer) = RequestVpnPacketBuffer;
void RequestVpnPacketBuffer(VpnDataPathType const& type, [Out] VpnPacketBuffer const& & vpnPacketBuffer);
public void RequestVpnPacketBuffer(VpnDataPathType type, out VpnPacketBuffer vpnPacketBuffer);
Public Sub RequestVpnPacketBuffer (type As VpnDataPathType, ByRef vpnPacketBuffer As VpnPacketBuffer)

パラメーター

type
VpnDataPathType

バッファーを選択するバッファー プールを示す列挙値。 パケットを VPN サーバーに送信するように要求されたバッファーの場合は、[送信] 列挙型を選択します。 要求されたバッファーが、クライアント ネットワーク スタックに挿入する準備ができている受信 L3 カプセル化解除されたパケット用である場合は、Receive 列挙型を選択します。

vpnPacketBuffer
VpnPacketBuffer

指定したバッファー プールから返された IVpnPacketBuffer オブジェクト。

Windows の要件

アプリの機能
networkingVpnProvider

注釈

関数が成功した場合、戻り値は S_OK。それ以外の場合、関数は特定のエラーを説明するエラー hresult 値を返します。 プラグインが接続されていない場合、エラーは E_ACCESSDENIED。使用可能なメモリがそれ以上ない場合、メソッドは E_OUTOFMEMORYを返します。

プラグインによって要求された IVpnPacketBuffer オブジェクトは、最終的に VPN プラットフォームに返される必要があります (つまり、IVpnPlugIn.Encapsulate または IVpnPlugin.Decapsulate経由)。 そうしないと、未処理のバッファーが返されるまで、プラグインは新しいバッファーを要求できない可能性があります。

手記

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

適用対象

こちらもご覧ください

  • <xref:Windows.Networking.Vpn.VpnChannel.GetVpnSendPacketBuffer+or+a+receive+path+buffer+via+M%3aWindows.Networking.Vpn.VpnChannel.GetVpnReceivePacketBuffer.>