From 20b5b107e67e45e6f0c1ec4b68c6af0677b18a6b Mon Sep 17 00:00:00 2001 From: Daiyuu Nobori Date: Sun, 22 Apr 2018 17:58:03 +0900 Subject: [PATCH] Virtual Network Adapter (NDIS6) source code updates. Fixed an issue that the VPN Client Virtual Network Driver fails to communicate when LTE or 3G wireless modems are used to connect to the internet by the computer running Windows 10 Spring Creators Update (version 1803). Please be careful that It is necessary to reinstall the device driver of the Virtual Network Adapter after upgrading the VPN client to build 9666 or later in order to solve the problem. --- src/Neo6/NDIS6.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/Neo6/NDIS6.c b/src/Neo6/NDIS6.c index d9a8fe1d..628ac3da 100644 --- a/src/Neo6/NDIS6.c +++ b/src/Neo6/NDIS6.c @@ -119,6 +119,7 @@ static UINT64 max_speed = NEO_MAX_SPEED_DEFAULT; static bool keep_link = false; +static UINT reg_if_type = IF_TYPE_ETHERNET_CSMACD; BOOLEAN PsGetVersion( @@ -350,8 +351,8 @@ NDIS_STATUS NeoNdisInitEx(NDIS_HANDLE MiniportAdapterHandle, gen.AccessType = NET_IF_ACCESS_BROADCAST; gen.DirectionType = NET_IF_DIRECTION_SENDRECEIVE; gen.ConnectionType = NET_IF_CONNECTION_DEDICATED; - gen.IfType = IF_TYPE_ETHERNET_CSMACD; - gen.IfConnectorPresent = TRUE; + gen.IfType = reg_if_type; + gen.IfConnectorPresent = FALSE; gen.SupportedStatistics = NDIS_STATISTICS_FLAGS_VALID_DIRECTED_FRAMES_RCV | NDIS_STATISTICS_FLAGS_VALID_MULTICAST_FRAMES_RCV | @@ -897,6 +898,20 @@ BOOL NeoLoadRegistory() keep_link = keep; + // Read the *IfType value + name = NewUnicode("*IfType"); + NdisReadConfiguration(&ret, ¶m, config, GetUnicode(name), NdisParameterInteger); + FreeUnicode(name); + + if (NG(ret) || param->ParameterType != NdisParameterInteger) + { + reg_if_type = IF_TYPE_ETHERNET_CSMACD; + } + else + { + reg_if_type = param->ParameterData.IntegerData; + } + // Close the config handle NdisCloseConfiguration(config);