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< Windows.Networking.HostName *> вектор, указывающий ip-адрес, назначенный VPN-сервером VPN-клиенту. Адрес должен быть задан в интерфейсе VPN L3. Если nullиспользуется DHCPv4.
- assignedClientIPv6list
Указатель на структуру 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
Логическое
- 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.