VpnChannel.Start Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Erstellt den VPN-Kanal, der vom VPN-Plug-In verwendet werden soll. Außerdem wird eine L3-Netzwerkschnittstelle für Anwendungen auf dem Clientcomputer erstellt, um das Unternehmensnetzwerk anzeigen zu können.
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)
Parameter
- assignedClientIPv4list
Ein Zeiger auf eine IVectorView< Windows.Networking.HostName *> Vektor, der die vom VPN-Server dem VPN-Client zugewiesene IPv4-Adresse angibt. Die Adresse sollte auf der VPN L3-Schnittstelle festgelegt werden. Wenn NULL-verwendet wird, wird DHCPv4 verwendet.
- assignedClientIPv6list
Ein Zeiger auf eine Windows.Networking.HostName Struktur, die die vom VPN-Server dem VPN-Client zugewiesene IPv6-Adresse angibt und die auf der VPN L3-Schnittstelle festgelegt werden soll. Wenn NULL-, wird DHCPv6 oder RD verwendet.
- vpnInterfaceId
- VpnInterfaceId
Ein Zeiger auf eine VpnInterfaceId.
- routeScope
- VpnRouteAssignment
Ein Zeiger auf die Windows.Networking.VpnRouteAssignment-Klasse, die die Routen darstellt, die der VPN-Schnittstelle zugeordnet/nicht zugeordnet werden sollen
- namespaceScope
- VpnNamespaceAssignment
Ein Zeiger auf die Windows.Networking.DomainNameAssignment-Klasse, die die Liste der Namenspräfixe darstellt, die dem VPN-Kanal zugeordnet sind, einschließlich der DNS- und Proxyserver.
- mtuSize
-
UInt32
unsigned int
uint32_t
Ein UINT16-Wert, der die MTU-Größe der VPN L3-Netzwerkschnittstelle angibt. Dies ist auch die Größe der IVpnPacketBuffers im Empfangspool. Dieser Wert sollte so konfiguriert werden, dass er höchstens 1400 ist.
- maxFrameSize
-
UInt32
unsigned int
uint32_t
Ein UINT16-Wert, der die maximale Größe des durch die VPN-Protokollkapselung definierten Frames angibt, ohne die outerTunnelTransportzu zählen. Dies ist auch die Größe der IVpnPacketBuffers im Send-Pool. Dieser Wert sollte als mtuSize + [Größe der Kapselkopfzeilen] konfiguriert werden und <=1500 sein. Wenn sie größer als 1500 sein würde, sollte entweder mtuSize oder Kapselungsheadergröße reduziert werden, da die Plattform die Framesgröße auf 1500 begrenzt.
- optimizeForLowCostNetwork
-
Boolean
bool
Ein vom Typ Boolean angeben, ob das VPN-Framework netzwerke überwachen und verwenden soll, sobald sie verfügbar sind. Wenn TRUE das VPN-Framework den Connect()-Rückruf an das VPN-Plug-In aufruft, um die Verbindung erneut herzustellen, sobald das alte Netzwerk kosten und ein neues kostengünstiges Netzwerk verfügbar wird.
- mainOuterTunnelTransport
-
Object
Platform::Object
IInspectable
Ein IInspectable-Objekt für den Sockettransport. Dieses Objekt kann ein Windows.Networking.Sockets.DatagramSocket- oder ein Windows.Networking.Sockets.StreamSocket-sein. Dieser Socket steuert die Verbindung mit dem VPN-Server und wird verwendet, um gekapselte IP-Pakete zu senden und gekapselte Daten zu empfangen.
- optionalOuterTunnelTransport
-
Object
Platform::Object
IInspectable
Ein optionales IInspectable-Objekt für den Sockettransport. Dieses Objekt kann ein Windows.Networking.Sockets.DatagramSocket- oder ein Windows.Networking.Sockets.StreamSocket-sein. Dieser Socket steuert die Verbindung mit dem VPN-Server und wird verwendet, um gekapselte IP-Pakete zu senden und gekapselte Daten zu empfangen.
- Attribute
Windows-Anforderungen
App-Funktionen |
networkingVpnProvider
|
Hinweise
Wenn die Funktion erfolgreich ist, wird der Rückgabewert S_OK, andernfalls gibt die Funktion einen Fehler-Hresult-Wert zurück, der den spezifischen Fehler beschreibt. Wenn das Plug-In nicht verbunden ist, wird der Fehler E_ACCESSDENIED.
Anmerkung
Jeder Aufruf dieser API außerhalb eines verbundenen VPN-Plug-Ins schlägt fehl, da Aktivitäten und Interaktionen zwischen dem VPN-Plug-In und dem System vom VPN-Profil gesteuert werden. Pro Prozess kann nur ein VPN-Profil vorhanden sein, da das VPN-Plug-In nur ein VPN-Profil zugeordnet ist, und wenn ein Aufrufer mehrere Profilobjekte erstellen würde, würden sie alle auf die gleichen Einstellungen verweisen.
Bei Erfolg wird der Besitz von outertTunnelTransport vom VPN-Framework übertragen. Das mehrfache Aufrufen dieser Methode mit denselben Parametern hat keine Auswirkung. Wenn Sie diese Methode mehrmals mit Variationen in Parameterwerten aufrufen, wird sichergestellt, dass der Kanal ohne Unterbrechungen anderer Eigenschaften mit den neuesten Werten aktualisiert wird.
Pro Prozess kann nur ein VPN-Kanal vorhanden sein, daher kann ein VPN-Plug-In nur einem VPN-Kanal zugewiesen werden. Die mtuSize muss immer kleiner sein als die maxFrameSize.