public void EnableExcludeMode(IEnumerable <string> apps, IPAddress internetLocalIp) { Create(); _ipFilter.Session.StartTransaction(); try { var callout = _ipFilter.CreateCallout( new DisplayData { Name = "ProtonVPN Split Tunnel callout", Description = "Redirects network connections", }, WfpCalloutKey, Layer.BindRedirectV4 ); var providerContext = _ipFilter.CreateProviderContext( new DisplayData { Name = "ProtonVPN Split Tunnel redirect context", Description = "Instructs the callout driver where to redirect network connections", }, new BindingRedirectData(internetLocalIp)); CreateAppFilters(apps, callout, providerContext); _ipFilter.Session.CommitTransaction(); } catch { _ipFilter.Session.AbortTransaction(); throw; } }
private Callout CreateConnectRedirectCallout() { return(_ipFilter.CreateCallout( new DisplayData { Name = "ProtonVPN Split Tunnel callout", Description = "Redirects network connections", }, WfpCalloutKey, Layer.AppConnectRedirectV4 )); }