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


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 *> вектор, указывающий ip-адрес, назначенный 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, инкапсулирование без подсчета внешнего. Это также размер IVpnPacketBuffers в пуле отправки. Это значение должно быть настроено как mtuSize + [размер заголовков инкапсуляции], и должно быть <=1500. Если размер заголовка mtuSize или инкапсуляции превышает 1500, то при этом платформа ограничивает размер фреймов до 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, сопоставленный с ним, и если вызывающий объект должен был создать несколько объектов профиля, они будут ссылаться на одни и те же параметры.

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

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

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