다음을 통해 공유


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 클라이언트에 할당한 IPv6 주소를 지정하고 VPN L3 인터페이스에서 설정해야 하는 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이어야 <합니다. mtuSize 또는 캡슐화 헤더 크기가 1500보다 큰 경우 플랫폼이 프레임 크기를 1500으로 제한하기 때문에 축소해야 합니다.

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 플러그 인에는 매핑된 VPN 프로필이 하나만 있고 호출자가 둘 이상의 프로필 개체를 만드는 경우 모두 동일한 설정을 참조하므로 프로세스당 하나의 VPN 프로필만 있을 수 있습니다.

성공하면 outertTunnelTransport 의 소유권이 VPN 프레임워크에 의해 이전됩니다. 동일한 매개 변수를 사용하여 이 메서드를 여러 번 호출해도 아무런 효과가 없습니다. 매개 변수 값의 변형으로 이 메서드를 여러 번 호출하면 채널이 다른 속성에 중단 없이 최신 값으로 업데이트됩니다.

프로세스당 하나의 VPN 채널만 있을 수 있으므로 VPN 플러그 인에는 하나의 VPN 채널만 할당할 수 있습니다. mtuSize는 항상 maxFrameSize보다 작아야 합니다.

적용 대상