Поделиться через


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>

Указатель на вектор IVectorView< Windows.Networking.HostName *> , указывающий IPv4-адрес, назначенный VPN-сервером VPN-клиенту. Адрес должен быть задан в интерфейсе VPN L3. Если значение равно null, используется DHCPv4.

assignedClientIPv6list

IVectorView<HostName>

IReadOnlyList<HostName>

Указатель на структуру Windows.Networking.HostName , указывающую IPv6-адрес, назначенный VPN-сервером VPN-клиенту и который должен быть задан в интерфейсе VPN L3. Если значение равно null, используется DHCPv6 или RD.

vpnInterfaceId
VpnInterfaceId

Указатель на VpnInterfaceId.

routeScope
VpnRouteAssignment

Указатель на класс Windows.Networking.VpnRouteAssignment, представляющий маршруты, которые должны быть связаны или не связаны с интерфейсом VPN.

namespaceScope
VpnNamespaceAssignment

Указатель на класс Windows.Networking.DomainNameAssignment, представляющий список префиксов имен, связанных с VPN-каналом, включая его DNS-серверы и прокси-серверы.

mtuSize
UInt32

unsigned int

uint32_t

Значение UINT16, указывающее размер MTU сетевого интерфейса VPN L3. Это также размер IVpnPacketBuffers в пуле получения. Это значение должно быть не более 1400.

maxFrameSize
UInt32

unsigned int

uint32_t

Значение UINT16, указывающее максимальный размер кадра, определенного инкапсуляцией протокола VPN, без учета outerTunnelTransport. Это также размер IVpnPacketBuffers в пуле отправки. Это значение должно быть настроено как mtuSize + [размер заголовков инкапсуляции], и должно быть <равно =1500. Если он будет больше 1500, размер заголовка mtuSize или инкапсуляции следует уменьшить, так как платформа ограничивает размер фреймов до 1500.

optimizeForLowCostNetwork
Boolean

bool

Логическое значение, указывающее, должна ли платформа VPN отслеживать и использовать недорогие сети по мере их доступности. Если значение РАВНО TRUE , платформа VPN вызовет обратный вызов connect() к подключаемого модуля VPN, чтобы повторно подключить его всякий раз, когда стоимость старой сети была затрачена и станет доступной новой недорогой сети.

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.

Примечание

Любой вызов этого API за пределами подключенного подключаемого модуля VPN завершится ошибкой, так как действия и взаимодействия между подключаемым модулем VPN и системой управляются профилем VPN. Для каждого процесса может быть только один профиль VPN, так как подключаемый модуль VPN имеет только один профиль VPN, сопоставленный с ним, и если вызывающий объект создаст несколько объектов профиля, все они будут ссылаться на одни и те же параметры.

При успешном выполнении владение outertTunnelTransport передается платформой VPN. Многократный вызов этого метода с одинаковыми параметрами не будет иметь никакого эффекта. При многократном вызове этого метода с вариантами значений параметров канал будет обновлен до последних значений без каких-либо нарушений в работе других свойств.

Для каждого процесса может быть только один канал VPN, поэтому подключаемому модулю VPN может быть назначен только один канал VPN. MtuSize всегда должен быть меньше maxFrameSize.

Применяется к