Browse Source

v4.17-9562-beta

dnobori 10 years ago
parent
commit
ff49706373
100 changed files with 3323 additions and 239 deletions
  1. 16 1
      src/BuildUtil/BuildUtilCommands.cs
  2. 1 1
      src/BuildUtil/CodeSign.cs
  3. 1 7
      src/BuildUtil/Test.cs
  4. 364 3
      src/BuildUtil/Win32BuildUtil.cs
  5. 2 1
      src/Cedar/AzureClient.c
  6. 6 9
      src/Cedar/BridgeWin32.c
  7. 2 4
      src/Cedar/BridgeWin32.h
  8. 8 8
      src/Cedar/Cedar.h
  9. 10 1
      src/Cedar/Command.c
  10. 25 1
      src/Cedar/Console.c
  11. 1 0
      src/Cedar/Console.h
  12. 17 5
      src/Cedar/IPsec_Win7.c
  13. 1 0
      src/Cedar/IPsec_Win7.h
  14. 0 18
      src/Cedar/SW.c
  15. 45 6
      src/Cedar/SeLowUser.c
  16. 14 9
      src/Cedar/VLanWin32.c
  17. 3 3
      src/CurrentBuild.txt
  18. 117 45
      src/Mayaqua/Microsoft.c
  19. 1 13
      src/Mayaqua/Microsoft.h
  20. 1 1
      src/Neo/NDIS5.c
  21. 1 1
      src/Neo/NDIS5.h
  22. 1 1
      src/Neo/Neo.h
  23. 6 6
      src/Neo/Neo.vcproj
  24. 202 39
      src/Neo6/NDIS6.c
  25. 3 1
      src/Neo6/NDIS6.h
  26. 17 4
      src/Neo6/Neo6.c
  27. 7 5
      src/Neo6/Neo6.h
  28. 8 8
      src/Neo6/Neo6.vcproj
  29. 0 5
      src/SEVPN.sln
  30. 2 1
      src/SeLow/SeLow.c
  31. 8 8
      src/SeLow/SeLow.vcproj
  32. 3 2
      src/SeLow/SeLowCommon.h
  33. 1 1
      src/See/Openclos.c
  34. 1 1
      src/See/Packet.c
  35. 6 6
      src/See/See.vcproj
  36. 6 6
      src/Wfp/Wfp.vcproj
  37. 11 4
      src/bin/hamcore/DriverPackages/Neo/x64/Neo_x64.inf
  38. BIN
      src/bin/hamcore/DriverPackages/Neo/x64/Neo_x64.sys
  39. 11 4
      src/bin/hamcore/DriverPackages/Neo/x86/Neo_x86.inf
  40. BIN
      src/bin/hamcore/DriverPackages/Neo/x86/Neo_x86.sys
  41. 114 0
      src/bin/hamcore/DriverPackages/Neo6/x64/Neo6_x64.inf
  42. BIN
      src/bin/hamcore/DriverPackages/Neo6/x64/Neo6_x64.sys
  43. 114 0
      src/bin/hamcore/DriverPackages/Neo6/x86/Neo6_x86.inf
  44. BIN
      src/bin/hamcore/DriverPackages/Neo6/x86/Neo6_x86.sys
  45. BIN
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN.cat
  46. 114 0
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN.inf
  47. BIN
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN.sys
  48. BIN
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN10.cat
  49. 114 0
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN10.inf
  50. BIN
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN10.sys
  51. BIN
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN100.cat
  52. 114 0
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN100.inf
  53. BIN
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN100.sys
  54. BIN
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN101.cat
  55. 114 0
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN101.inf
  56. BIN
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN101.sys
  57. BIN
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN102.cat
  58. 114 0
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN102.inf
  59. BIN
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN102.sys
  60. BIN
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN103.cat
  61. 114 0
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN103.inf
  62. BIN
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN103.sys
  63. BIN
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN104.cat
  64. 114 0
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN104.inf
  65. BIN
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN104.sys
  66. BIN
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN105.cat
  67. 114 0
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN105.inf
  68. BIN
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN105.sys
  69. BIN
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN106.cat
  70. 114 0
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN106.inf
  71. BIN
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN106.sys
  72. BIN
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN107.cat
  73. 114 0
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN107.inf
  74. BIN
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN107.sys
  75. BIN
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN108.cat
  76. 114 0
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN108.inf
  77. BIN
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN108.sys
  78. BIN
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN109.cat
  79. 114 0
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN109.inf
  80. BIN
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN109.sys
  81. BIN
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN11.cat
  82. 114 0
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN11.inf
  83. BIN
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN11.sys
  84. BIN
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN110.cat
  85. 114 0
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN110.inf
  86. BIN
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN110.sys
  87. BIN
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN111.cat
  88. 114 0
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN111.inf
  89. BIN
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN111.sys
  90. BIN
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN112.cat
  91. 114 0
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN112.inf
  92. BIN
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN112.sys
  93. BIN
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN113.cat
  94. 114 0
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN113.inf
  95. BIN
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN113.sys
  96. BIN
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN114.cat
  97. 114 0
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN114.inf
  98. BIN
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN114.sys
  99. BIN
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN115.cat
  100. 114 0
      src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN115.inf

+ 16 - 1
src/BuildUtil/BuildUtilCommands.cs

@@ -926,6 +926,19 @@ namespace BuildUtil
 			return 0;
 		}
 
+		// Driver package build
+		// Win32 build
+		[ConsoleCommandMethod(
+			"Builds the driver package.",
+			"BuildDriverPackage",
+			"Builds the driver package.")]
+		static int BuildDriverPackage(ConsoleService c, string cmdName, string str)
+		{
+			Win32BuildUtil.MakeDriverPackage();
+
+			return 0;
+		}
+
 		// Win32 build
 		[ConsoleCommandMethod(
 			"Builds all executable files for win32 and HamCore for all OS.",
@@ -1159,14 +1172,16 @@ namespace BuildUtil
 			{
 				new ConsoleParam("[targetFileName]", ConsoleService.Prompt, "Target Filename: ", ConsoleService.EvalNotEmpty, null),
 				new ConsoleParam("OUT", ConsoleService.Prompt, "Dst Filename: ", ConsoleService.EvalNotEmpty, null),
+				new ConsoleParam("PRODUCT"),
 				new ConsoleParam("RC"),
 			};
 			ConsoleParamValueList vl = c.ParseCommandList(cmdName, str, args);
 
 			string targetFilename = vl.DefaultParam.StrValue;
 			string outFilename = vl["OUT"].StrValue;
+			string product_name = vl["PRODUCT"].StrValue;
 
-			Win32BuildUtil.GenerateVersionInfoResource(targetFilename, outFilename, vl["RC"].StrValue);
+			Win32BuildUtil.GenerateVersionInfoResource(targetFilename, outFilename, vl["RC"].StrValue, product_name);
 
 			return 0;
 		}

+ 1 - 1
src/BuildUtil/CodeSign.cs

@@ -153,7 +153,7 @@ namespace BuildUtil
 #endif
 
 		static object lockObj = new object();
-
+		
 		// Digital-sign the data on the memory
 		public static byte[] SignMemory(byte[] srcData, string comment, bool kernelModeDriver, int cert_id)
 		{

+ 1 - 7
src/BuildUtil/Test.cs

@@ -139,13 +139,7 @@ namespace BuildUtil
 	{
 		public static void Test()
 		{
-			Language[] langs = BuildHelper.GetLanguageList();
-
-			foreach (Language e in langs)
-			{
-				Con.WriteLine("{0} {1} {2} {3} {5} {4}",
-					e.Number, e.Id, e.Title, e.TitleUnicode, e.UnixLocaleIds, e.WindowsLocaleIds);
-			}
+			Win32BuildUtil.MakeDriverPackage();
 		}
 	}
 }

+ 364 - 3
src/BuildUtil/Win32BuildUtil.cs

@@ -181,7 +181,7 @@ namespace BuildUtil
 		}
 
 		// Generate a version information resource
-		public static void GenerateVersionInfoResource(string targetExeName, string outName, string rc_name)
+		public static void GenerateVersionInfoResource(string targetExeName, string outName, string rc_name, string product_name)
 		{
 			int build, version;
 			string name;
@@ -199,11 +199,18 @@ namespace BuildUtil
 			string exeFileName = Path.GetFileName(targetExeName);
 			string internalName = Path.GetFileNameWithoutExtension(exeFileName);
 
+			if (Str.IsEmptyStr(product_name) == false)
+			{
+				body = Str.ReplaceStr(body, "$PRODUCTNAME$", product_name);
+			}
+			else
+			{
 #if !BU_SOFTETHER
-			body = Str.ReplaceStr(body, "$PRODUCTNAME$", "PacketiX VPN");
+				body = Str.ReplaceStr(body, "$PRODUCTNAME$", "PacketiX VPN");
 #else		
-			body = Str.ReplaceStr(body, "$PRODUCTNAME$", "SoftEther VPN");
+				body = Str.ReplaceStr(body, "$PRODUCTNAME$", "SoftEther VPN");
 #endif
+			}
 			body = Str.ReplaceStr(body, "$INTERNALNAME$", internalName);
 			body = Str.ReplaceStr(body, "$YEAR$", date.Year.ToString());
 			body = Str.ReplaceStr(body, "$FILENAME$", exeFileName);
@@ -818,6 +825,10 @@ namespace BuildUtil
 			{
 				return false;
 			}
+			if (Str.InStr(fileName, "DriverPackages", false))
+			{
+				return false;
+			}
 			if (Str.InStr(fileName, "_nosign", false))
 			{
 				return false;
@@ -908,14 +919,27 @@ namespace BuildUtil
 		{
 
 			string cdfFileName = Path.Combine(dstDir, "inf.cdf");
+			string cdfFileName2 = Path.Combine(dstDir, "inf2.cdf");
 			string catFileName = Path.Combine(dstDir, "inf.cat");
+			string catFileName2 = Path.Combine(dstDir, "inf2.cat");
 			StringWriter sw = new StringWriter();
+			StringWriter sw2 = new StringWriter();
 
 			string txt = File.ReadAllText(inf, Str.ShiftJisEncoding);
 
 			IO.DeleteFilesAndSubDirsInDir(dstDir);
 			IO.MakeDirIfNotExists(dstDir);
 
+			string utility_dirname = Path.Combine(Paths.BaseDirName, @"BuildFiles\Utility");
+			string makecat1 = Path.Combine(dstDir, "makecat.exe");
+			string makecat2 = Path.Combine(dstDir, "makecat.exe.manifest");
+			string makecat3 = Path.Combine(dstDir, "Microsoft.Windows.Build.Signing.wintrust.dll.manifest");
+			string makecat4 = Path.Combine(dstDir, "wintrust.dll");
+			File.Copy(Path.Combine(utility_dirname, "makecat.exe"), makecat1, true);
+			File.Copy(Path.Combine(utility_dirname, "makecat.exe.manifest"), makecat2, true);
+			File.Copy(Path.Combine(utility_dirname, "Microsoft.Windows.Build.Signing.wintrust.dll.manifest"), makecat3, true);
+			File.Copy(Path.Combine(utility_dirname, "wintrust.dll"), makecat4, true);
+
 			string dst_sys_name = Path.Combine(dstDir, Path.GetFileName(sys));
 			File.Copy(sys, dst_sys_name, true);
 
@@ -927,14 +951,28 @@ namespace BuildUtil
 			}
 
 			sw.WriteLine("[CatalogHeader]");
+			sw2.WriteLine("[CatalogHeader]");
+
 			sw.WriteLine("name=inf.cat");
+			sw2.WriteLine("name=inf2.cat");
+
+			sw2.WriteLine("CatalogVersion=2");
+			sw2.WriteLine("HashAlgorithms=SHA256");
+			sw2.WriteLine("PageHashes=true");
+
 			sw.WriteLine();
+			sw2.WriteLine();
+
 			sw.WriteLine("[CatalogFiles]");
+			sw2.WriteLine("[CatalogFiles]");
+			
 			sw.WriteLine("<hash>{0}={0}", Path.GetFileName(dst_sys_name));
+			sw2.WriteLine("<hash>{0}={0}", Path.GetFileName(dst_sys_name));
 
 			if (sys6 != null)
 			{
 				sw.WriteLine("<hash>{0}={0}", Path.GetFileName(dst_sys6_name));
+				sw2.WriteLine("<hash>{0}={0}", Path.GetFileName(dst_sys6_name));
 			}
 
 			int i;
@@ -982,6 +1020,7 @@ namespace BuildUtil
 				File.WriteAllText(dst_inf_name, body, Str.ShiftJisEncoding);
 
 				sw.WriteLine("<hash>{0}={0}", Path.GetFileName(dst_inf_name));
+				sw2.WriteLine("<hash>{0}={0}", Path.GetFileName(dst_inf_name));
 
 				if (selow)
 				{
@@ -989,28 +1028,350 @@ namespace BuildUtil
 				}
 			}
 			sw.WriteLine();
+			sw2.WriteLine();
 
 			File.WriteAllText(cdfFileName, sw.ToString());
+			File.WriteAllText(cdfFileName2, sw2.ToString());
 
 			// generate catalog file
 			Directory.SetCurrentDirectory(dstDir);
 			ExecCommand(Paths.MakeCatFilename, string.Format("\"{0}\"", cdfFileName));
+			ExecCommand(makecat1, string.Format("\"{0}\"", cdfFileName2));
 
 			// sign catalog file
 			CodeSign.SignFile(catFileName, catFileName, "Catalog File", false);
+			CodeSign.SignFile(catFileName2, catFileName2, "Catalog File", false);
 
 			// delete cdf file
 			File.Delete(cdfFileName);
+			File.Delete(cdfFileName2);
 
 			// delete sys file
 			File.Delete(dst_sys_name);
 
+			File.Delete(makecat1);
+			File.Delete(makecat2);
+			File.Delete(makecat3);
+			File.Delete(makecat4);
+
 			if (sys6 != null)
 			{
 				File.Delete(dst_sys6_name);
 			}
 		}
 
+		static string process_inf_file(string src_inf_txt, int build, int ver, DateTime date, string sys_name, string name, string catfile, bool replace_mac_address)
+		{
+			string body = src_inf_txt;
+
+			if (Str.IsEmptyStr(sys_name) == false)
+			{
+				body = Str.ReplaceStr(body, "$TAG_SYS_NAME$", sys_name);
+			}
+			if (Str.IsEmptyStr(name) == false)
+			{
+				body = Str.ReplaceStr(body, "$TAG_INSTANCE_NAME$", name);
+			}
+			if (replace_mac_address)
+			{
+				body = Str.ReplaceStr(body, "$TAG_MAC_ADDRESS$", "000001000001");
+			}
+			body = Str.ReplaceStr(body, "$YEAR$", date.Year.ToString("D4"));
+			body = Str.ReplaceStr(body, "$MONTH$", date.Month.ToString("D2"));
+			body = Str.ReplaceStr(body, "$DAY$", date.Day.ToString("D2"));
+			body = Str.ReplaceStr(body, "$VER_MAJOR$", (ver / 100).ToString());
+			body = Str.ReplaceStr(body, "$VER_MINOR$", (ver % 100).ToString());
+			body = Str.ReplaceStr(body, "$VER_BUILD$", build.ToString());
+
+			if (Str.IsEmptyStr(catfile) == false)
+			{
+				body = Str.ReplaceStr(body, "$CATALOG_FILENAME$", catfile);
+				body = Str.ReplaceStr(body, ";CatalogFile.NT", "CatalogFile.NT");
+			}
+
+			body += "\r\n; Auto Generated " + Str.DateTimeToStrShortWithMilliSecs(DateTime.Now) + "\r\n\r\n";
+
+			return body;
+		}
+
+		static void make_cat_file(string dir, string[] filename_list, string catname, bool win8, bool no_sign)
+		{
+			string utility_dirname = Path.Combine(Paths.BaseDirName, @"BuildFiles\Utility");
+			string makecat1 = Path.Combine(dir, "makecat.exe");
+			string makecat2 = Path.Combine(dir, "makecat.exe.manifest");
+			string makecat3 = Path.Combine(dir, "Microsoft.Windows.Build.Signing.wintrust.dll.manifest");
+			string makecat4 = Path.Combine(dir, "wintrust.dll");
+			File.Copy(Path.Combine(utility_dirname, "makecat.exe"), makecat1, true);
+			File.Copy(Path.Combine(utility_dirname, "makecat.exe.manifest"), makecat2, true);
+			File.Copy(Path.Combine(utility_dirname, "Microsoft.Windows.Build.Signing.wintrust.dll.manifest"), makecat3, true);
+			File.Copy(Path.Combine(utility_dirname, "wintrust.dll"), makecat4, true);
+
+			StringWriter sw2 = new StringWriter();
+			sw2.WriteLine("[CatalogHeader]");
+			sw2.WriteLine("name=" + catname);
+
+			if (win8)
+			{
+				sw2.WriteLine("CatalogVersion=2");
+				sw2.WriteLine("HashAlgorithms=SHA256");
+				sw2.WriteLine("PageHashes=true");
+			}
+
+			sw2.WriteLine();
+
+			sw2.WriteLine("[CatalogFiles]");
+
+			foreach (string filename in filename_list)
+			{
+				sw2.WriteLine("<hash>{0}={0}", filename);
+			}
+
+			sw2.WriteLine();
+			
+			string cdf_file_name = catname + ".cdf";
+
+			Directory.SetCurrentDirectory(dir);
+
+			File.WriteAllText(cdf_file_name, sw2.ToString());
+			ExecCommand(makecat1, string.Format("\"{0}\"", cdf_file_name));
+
+			if (no_sign == false)
+			{
+				CodeSign.SignFile(catname, catname, "Catalog File", false);
+			}
+
+			File.Delete(cdf_file_name);
+
+			File.Delete(makecat1);
+			File.Delete(makecat2);
+			File.Delete(makecat3);
+			File.Delete(makecat4);
+		}
+
+		public static void MakeDriverPackage()
+		{
+			int build, version;
+			string buildname;
+			DateTime date;
+			int i;
+
+			ReadBuildInfoFromTextFile(out build, out version, out buildname, out date);
+
+			date = date.AddDays(-1);
+
+			string dst_dir = Path.Combine(Paths.BaseDirName, @"tmp\MakeDriverPackage");
+			string src_dir = Path.Combine(Paths.BaseDirName, @"BuiltDriverPackages");
+			IO.DeleteFilesAndSubDirsInDir(dst_dir);
+			IO.MakeDirIfNotExists(dst_dir);
+
+			// Neo9x x86
+			IO.MakeDir(Path.Combine(dst_dir, @"Neo9x\x86"));
+			IO.WriteAllTextWithEncoding(Path.Combine(dst_dir, @"Neo9x\x86\Neo9x_x86.inf"),
+				process_inf_file(IO.ReadAllTextWithAutoGetEncoding(Path.Combine(src_dir, @"Neo9x\x86\Neo9x_x86.inf")), build, version, date, null, null, null, false), Str.ShiftJisEncoding, false);
+			IO.FileCopy(Path.Combine(src_dir, @"Neo9x\x86\Neo9x_x86.sys"), Path.Combine(dst_dir, @"Neo9x\x86\Neo9x_x86.sys"));
+
+			// Neo x86
+			IO.MakeDir(Path.Combine(dst_dir, @"Neo\x86"));
+			IO.WriteAllTextWithEncoding(Path.Combine(dst_dir, @"Neo\x86\Neo_x86.inf"),
+				process_inf_file(IO.ReadAllTextWithAutoGetEncoding(Path.Combine(src_dir, @"Neo\x86\Neo_x86.inf")), build, version, date, null, null, null, false), Str.ShiftJisEncoding, false);
+			IO.FileCopy(Path.Combine(src_dir, @"Neo\x86\Neo_x86.sys"), Path.Combine(dst_dir, @"Neo\x86\Neo_x86.sys"));
+
+			// Neo x64
+			IO.MakeDir(Path.Combine(dst_dir, @"Neo\x64"));
+			IO.WriteAllTextWithEncoding(Path.Combine(dst_dir, @"Neo\x64\Neo_x64.inf"),
+				process_inf_file(IO.ReadAllTextWithAutoGetEncoding(Path.Combine(src_dir, @"Neo\x64\Neo_x64.inf")), build, version, date, null, null, null, false), Str.ShiftJisEncoding, false);
+			IO.FileCopy(Path.Combine(src_dir, @"Neo\x64\Neo_x64.sys"), Path.Combine(dst_dir, @"Neo\x64\Neo_x64.sys"));
+
+			// Neo6 x86
+			IO.MakeDir(Path.Combine(dst_dir, @"Neo6\x86"));
+			IO.WriteAllTextWithEncoding(Path.Combine(dst_dir, @"Neo6\x86\Neo6_x86.inf"),
+				process_inf_file(IO.ReadAllTextWithAutoGetEncoding(Path.Combine(src_dir, @"Neo6\x86\Neo6_x86.inf")), build, version, date, null, null, null, false), Str.ShiftJisEncoding, false);
+			IO.FileCopy(Path.Combine(src_dir, @"Neo6\x86\Neo6_x86.sys"), Path.Combine(dst_dir, @"Neo6\x86\Neo6_x86.sys"));
+
+			// Neo6 x64
+			IO.MakeDir(Path.Combine(dst_dir, @"Neo6\x64"));
+			IO.WriteAllTextWithEncoding(Path.Combine(dst_dir, @"Neo6\x64\Neo6_x64.inf"),
+				process_inf_file(IO.ReadAllTextWithAutoGetEncoding(Path.Combine(src_dir, @"Neo6\x64\Neo6_x64.inf")), build, version, date, null, null, null, false), Str.ShiftJisEncoding, false);
+			IO.FileCopy(Path.Combine(src_dir, @"Neo6\x64\Neo6_x64.sys"), Path.Combine(dst_dir, @"Neo6\x64\Neo6_x64.sys"));
+
+			// Neo6 for Windows 8 x86
+			IO.MakeDir(Path.Combine(dst_dir, @"Neo6_Win8\x86"));
+			List<string> cat_src_filename = new List<string>();
+			cat_src_filename.Add("Neo6_x86.sys");
+			for (i = 1; i < 128; i++)
+			{
+				string name = "VPN";
+				if (i >= 2)
+				{
+					name += i.ToString();
+				}
+				string sys_name = "Neo_" + name + ".sys";
+				IO.WriteAllTextWithEncoding(Path.Combine(dst_dir, @"Neo6_Win8\x86\Neo6_x86_" + name + ".inf"),
+					process_inf_file(IO.ReadAllTextWithAutoGetEncoding(Path.Combine(src_dir, @"Neo6\x86\Neo6_x86.inf")), build, version, date, sys_name, name, string.Format("inf_{0}.cat", name), true), Str.ShiftJisEncoding, false);
+				cat_src_filename.Add("Neo6_x86_" + name + ".inf");
+			}
+			IO.FileCopy(Path.Combine(src_dir, @"Neo6\x86\Neo6_x86.sys"), Path.Combine(dst_dir, @"Neo6_Win8\x86\Neo6_x86.sys"));
+			make_cat_file(Path.Combine(dst_dir, @"Neo6_Win8\x86"), cat_src_filename.ToArray(), "inf.cat", false, false);
+			make_cat_file(Path.Combine(dst_dir, @"Neo6_Win8\x86"), cat_src_filename.ToArray(), "inf2.cat", true, false);
+
+			// Neo6 for Windows 8 x64
+			IO.MakeDir(Path.Combine(dst_dir, @"Neo6_Win8\x64"));
+			cat_src_filename = new List<string>();
+			cat_src_filename.Add("Neo6_x64.sys");
+			for (i = 1; i < 128; i++)
+			{
+				string name = "VPN";
+				if (i >= 2)
+				{
+					name += i.ToString();
+				}
+				string sys_name = "Neo_" + name + ".sys";
+				IO.WriteAllTextWithEncoding(Path.Combine(dst_dir, @"Neo6_Win8\x64\Neo6_x64_" + name + ".inf"),
+					process_inf_file(IO.ReadAllTextWithAutoGetEncoding(Path.Combine(src_dir, @"Neo6\x64\Neo6_x64.inf")), build, version, date, sys_name, name, string.Format("inf_{0}.cat", name), true), Str.ShiftJisEncoding, false);
+				cat_src_filename.Add("Neo6_x64_" + name + ".inf");
+			}
+			IO.FileCopy(Path.Combine(src_dir, @"Neo6\x64\Neo6_x64.sys"), Path.Combine(dst_dir, @"Neo6_Win8\x64\Neo6_x64.sys"));
+			make_cat_file(Path.Combine(dst_dir, @"Neo6_Win8\x64"), cat_src_filename.ToArray(), "inf.cat", false, false);
+			make_cat_file(Path.Combine(dst_dir, @"Neo6_Win8\x64"), cat_src_filename.ToArray(), "inf2.cat", true, false);
+			
+			// Neo6 for Windows 10 x86
+			IO.MakeDir(Path.Combine(dst_dir, @"Neo6_Win10\x86"));
+			for (i = 1; i < 128; i++)
+			{
+				string name = "VPN";
+				if (i >= 2)
+				{
+					name += i.ToString();
+				}
+				cat_src_filename = new List<string>();
+				cat_src_filename.Add("Neo6_x86_" + name + ".sys");
+				string sys_name = "Neo6_x86_" + name + ".sys";
+				IO.WriteAllTextWithEncoding(Path.Combine(dst_dir, @"Neo6_Win10\x86\Neo6_x86_" + name + ".inf"),
+					process_inf_file(IO.ReadAllTextWithAutoGetEncoding(Path.Combine(src_dir, @"Neo6\x86\Neo6_x86.inf")), build, version, date, sys_name, name, string.Format("Neo6_x86_{0}.cat", name), true), Str.ShiftJisEncoding, false);
+				cat_src_filename.Add("Neo6_x86_" + name + ".inf");
+				IO.FileCopy(Path.Combine(src_dir, @"Neo6\x86\Neo6_x86.sys"), Path.Combine(dst_dir, @"Neo6_Win10\x86\Neo6_x86_" + name + ".sys"));
+				make_cat_file(Path.Combine(dst_dir, @"Neo6_Win10\x86"), cat_src_filename.ToArray(), "Neo6_x86_" + name + ".cat", true, true);
+			}
+
+			// Neo6 for Windows 10 x64
+			IO.MakeDir(Path.Combine(dst_dir, @"Neo6_Win10\x64"));
+			for (i = 1; i < 128; i++)
+			{
+				string name = "VPN";
+				if (i >= 2)
+				{
+					name += i.ToString();
+				}
+				cat_src_filename = new List<string>();
+				cat_src_filename.Add("Neo6_x64_" + name + ".sys");
+				string sys_name = "Neo6_x64_" + name + ".sys";
+				IO.WriteAllTextWithEncoding(Path.Combine(dst_dir, @"Neo6_Win10\x64\Neo6_x64_" + name + ".inf"),
+					process_inf_file(IO.ReadAllTextWithAutoGetEncoding(Path.Combine(src_dir, @"Neo6\x64\Neo6_x64.inf")), build, version, date, sys_name, name, string.Format("Neo6_x64_{0}.cat", name), true), Str.ShiftJisEncoding, false);
+				cat_src_filename.Add("Neo6_x64_" + name + ".inf");
+				IO.FileCopy(Path.Combine(src_dir, @"Neo6\x64\Neo6_x64.sys"), Path.Combine(dst_dir, @"Neo6_Win10\x64\Neo6_x64_" + name + ".sys"));
+				make_cat_file(Path.Combine(dst_dir, @"Neo6_Win10\x64"), cat_src_filename.ToArray(), "Neo6_x64_" + name + ".cat", true, true);
+			}
+
+			IO.CopyDir(Path.Combine(src_dir, "See"), Path.Combine(dst_dir, "See"), null, false, false);
+
+			// SeLow x86 for Windows 8.1
+			IO.MakeDir(Path.Combine(dst_dir, @"SeLow_Win8\x86"));
+			cat_src_filename = new List<string>();
+			cat_src_filename.Add("SeLow_x86.sys");
+			cat_src_filename.Add("SeLow_x86.inf");
+			IO.WriteAllTextWithEncoding(Path.Combine(dst_dir, @"SeLow_Win8\x86\SeLow_x86.inf"),
+				process_inf_file(IO.ReadAllTextWithAutoGetEncoding(Path.Combine(src_dir, @"SeLow\x86\SeLow_x86.inf")), build, version, date, null, null, "SeLow_Win8_x86.cat", false), Str.ShiftJisEncoding, false);
+			IO.FileCopy(Path.Combine(src_dir, @"SeLow\x86\SeLow_x86.sys"), Path.Combine(dst_dir, @"SeLow_Win8\x86\SeLow_x86.sys"));
+			make_cat_file(Path.Combine(dst_dir, @"SeLow_Win8\x86"), cat_src_filename.ToArray(), "inf.cat", false, false);
+			make_cat_file(Path.Combine(dst_dir, @"SeLow_Win8\x86"), cat_src_filename.ToArray(), "inf2.cat", true, false);
+
+			// SeLow x64 for Windows 8.1
+			IO.MakeDir(Path.Combine(dst_dir, @"SeLow_Win8\x64"));
+			cat_src_filename = new List<string>();
+			cat_src_filename.Add("SeLow_x64.sys");
+			cat_src_filename.Add("SeLow_x64.inf");
+			IO.WriteAllTextWithEncoding(Path.Combine(dst_dir, @"SeLow_Win8\x64\SeLow_x64.inf"),
+				process_inf_file(IO.ReadAllTextWithAutoGetEncoding(Path.Combine(src_dir, @"SeLow\x64\SeLow_x64.inf")), build, version, date, null, null, "SeLow_Win8_x64.cat", false), Str.ShiftJisEncoding, false);
+			IO.FileCopy(Path.Combine(src_dir, @"SeLow\x64\SeLow_x64.sys"), Path.Combine(dst_dir, @"SeLow_Win8\x64\SeLow_x64.sys"));
+			make_cat_file(Path.Combine(dst_dir, @"SeLow_Win8\x64"), cat_src_filename.ToArray(), "inf.cat", false, false);
+			make_cat_file(Path.Combine(dst_dir, @"SeLow_Win8\x64"), cat_src_filename.ToArray(), "inf2.cat", true, false);
+
+			// SeLow x86 for Windows 10
+			IO.MakeDir(Path.Combine(dst_dir, @"SeLow_Win10\x86"));
+			cat_src_filename = new List<string>();
+			cat_src_filename.Add("SeLow_x86.sys");
+			cat_src_filename.Add("SeLow_x86.inf");
+			IO.WriteAllTextWithEncoding(Path.Combine(dst_dir, @"SeLow_Win10\x86\SeLow_x86.inf"),
+				process_inf_file(IO.ReadAllTextWithAutoGetEncoding(Path.Combine(src_dir, @"SeLow\x86\SeLow_x86.inf")), build, version, date, null, null, "SeLow_Win10_x86.cat", false), Str.ShiftJisEncoding, false);
+			IO.FileCopy(Path.Combine(src_dir, @"SeLow\x86\SeLow_x86.sys"), Path.Combine(dst_dir, @"SeLow_Win10\x86\SeLow_x86.sys"));
+			make_cat_file(Path.Combine(dst_dir, @"SeLow_Win10\x86"), cat_src_filename.ToArray(), "SeLow_Win10_x86.cat", true, false);
+
+			// SeLow x64 for Windows 10
+			IO.MakeDir(Path.Combine(dst_dir, @"SeLow_Win10\x64"));
+			cat_src_filename = new List<string>();
+			cat_src_filename.Add("SeLow_x64.sys");
+			cat_src_filename.Add("SeLow_x64.inf");
+			IO.WriteAllTextWithEncoding(Path.Combine(dst_dir, @"SeLow_Win10\x64\SeLow_x64.inf"),
+				process_inf_file(IO.ReadAllTextWithAutoGetEncoding(Path.Combine(src_dir, @"SeLow\x64\SeLow_x64.inf")), build, version, date, null, null, "SeLow_Win10_x64.cat", false), Str.ShiftJisEncoding, false);
+			IO.FileCopy(Path.Combine(src_dir, @"SeLow\x64\SeLow_x64.sys"), Path.Combine(dst_dir, @"SeLow_Win10\x64\SeLow_x64.sys"));
+			make_cat_file(Path.Combine(dst_dir, @"SeLow_Win10\x64"), cat_src_filename.ToArray(), "SeLow_Win10_x64.cat", true, false);
+
+			// Wfp x86
+			IO.MakeDir(Path.Combine(dst_dir, @"Wfp\x86"));
+			cat_src_filename = new List<string>();
+			cat_src_filename.Add("pxwfp_x86.sys");
+			cat_src_filename.Add("pxwfp_x86.inf");
+			IO.WriteAllTextWithEncoding(Path.Combine(dst_dir, @"Wfp\x86\pxwfp_x86.inf"),
+				process_inf_file(IO.ReadAllTextWithAutoGetEncoding(Path.Combine(src_dir, @"Wfp\x86\pxwfp_x86.inf")), build, version, date, null, null, "pxwfp_x86.cat", false), Str.ShiftJisEncoding, false);
+			IO.FileCopy(Path.Combine(src_dir, @"Wfp\x86\pxwfp_x86.sys"), Path.Combine(dst_dir, @"Wfp\x86\pxwfp_x86.sys"));
+			make_cat_file(Path.Combine(dst_dir, @"Wfp\x86"), cat_src_filename.ToArray(), "inf.cat", false, false);
+			make_cat_file(Path.Combine(dst_dir, @"Wfp\x86"), cat_src_filename.ToArray(), "inf2.cat", true, false);
+
+			// Wfp x64
+			IO.MakeDir(Path.Combine(dst_dir, @"Wfp\x64"));
+			cat_src_filename = new List<string>();
+			cat_src_filename.Add("pxwfp_x64.sys");
+			cat_src_filename.Add("pxwfp_x64.inf");
+			IO.WriteAllTextWithEncoding(Path.Combine(dst_dir, @"Wfp\x64\pxwfp_x64.inf"),
+				process_inf_file(IO.ReadAllTextWithAutoGetEncoding(Path.Combine(src_dir, @"Wfp\x64\pxwfp_x64.inf")), build, version, date, null, null, "pxwfp_x64.cat", false), Str.ShiftJisEncoding, false);
+			IO.FileCopy(Path.Combine(src_dir, @"Wfp\x64\pxwfp_x64.sys"), Path.Combine(dst_dir, @"Wfp\x64\pxwfp_x64.sys"));
+			make_cat_file(Path.Combine(dst_dir, @"Wfp\x64"), cat_src_filename.ToArray(), "inf.cat", false, false);
+			make_cat_file(Path.Combine(dst_dir, @"Wfp\x64"), cat_src_filename.ToArray(), "inf2.cat", true, false);
+
+			// Wfp x86 for Windows 10
+			IO.MakeDir(Path.Combine(dst_dir, @"Wfp_Win10\x86"));
+			cat_src_filename = new List<string>();
+			cat_src_filename.Add("pxwfp_x86.sys");
+			cat_src_filename.Add("pxwfp_x86.inf");
+			IO.WriteAllTextWithEncoding(Path.Combine(dst_dir, @"Wfp_Win10\x86\pxwfp_x86.inf"),
+				process_inf_file(IO.ReadAllTextWithAutoGetEncoding(Path.Combine(src_dir, @"Wfp\x86\pxwfp_x86.inf")), build, version, date, null, null, "pxwfp_Win10_x86.cat", false), Str.ShiftJisEncoding, false);
+			IO.FileCopy(Path.Combine(src_dir, @"Wfp\x86\pxwfp_x86.sys"), Path.Combine(dst_dir, @"Wfp_Win10\x86\pxwfp_x86.sys"));
+			make_cat_file(Path.Combine(dst_dir, @"Wfp_Win10\x86"), cat_src_filename.ToArray(), "pxwfp_Win10_x86.cat", true, false);
+
+			// Wfp x64 for Windows 10
+			IO.MakeDir(Path.Combine(dst_dir, @"Wfp_Win10\x64"));
+			cat_src_filename = new List<string>();
+			cat_src_filename.Add("pxwfp_x64.sys");
+			cat_src_filename.Add("pxwfp_x64.inf");
+			IO.WriteAllTextWithEncoding(Path.Combine(dst_dir, @"Wfp_Win10\x64\pxwfp_x64.inf"),
+				process_inf_file(IO.ReadAllTextWithAutoGetEncoding(Path.Combine(src_dir, @"Wfp\x64\pxwfp_x64.inf")), build, version, date, null, null, "pxwfp_Win10_x64.cat", false), Str.ShiftJisEncoding, false);
+			IO.FileCopy(Path.Combine(src_dir, @"Wfp\x64\pxwfp_x64.sys"), Path.Combine(dst_dir, @"Wfp_Win10\x64\pxwfp_x64.sys"));
+			make_cat_file(Path.Combine(dst_dir, @"Wfp_Win10\x64"), cat_src_filename.ToArray(), "pxwfp_Win10_x64.cat", true, false);
+
+			string tmp_body = IO.ReadAllTextWithAutoGetEncoding(Path.Combine(src_dir, "make_whql_submission.cm_"));
+			tmp_body = Str.ReplaceStr(tmp_body, "test_tag", Str.DateTimeToStrShort(DateTime.Now) + "_Build_" + build.ToString());
+			IO.WriteAllTextWithEncoding(Path.Combine(dst_dir, "make_whql_submission.cmd"), tmp_body, Str.ShiftJisEncoding);
+
+			IO.FileCopy(Path.Combine(src_dir, "2_merge_whql_sign.cm_"), Path.Combine(dst_dir, "2_merge_whql_sign.cm_"));
+
+			tmp_body = IO.ReadAllTextWithAutoGetEncoding(Path.Combine(src_dir, "Memo.txt"));
+			tmp_body = Str.ReplaceStr(tmp_body, "tag_ver", (version / 100).ToString() + "." + (version % 100).ToString());
+			tmp_body = Str.ReplaceStr(tmp_body, "tag_build", build.ToString());
+			IO.WriteAllTextWithEncoding(Path.Combine(dst_dir, "Memo.txt"), tmp_body, Str.ShiftJisEncoding);
+
+			Kernel.Run(Path.Combine(Env.WindowsDir, "explorer.exe"), "\"" + dst_dir + "\"");
+		}
+
 		// Sign for all binary files (series mode)
 		public static void SignAllBinaryFilesSerial()
 		{

+ 2 - 1
src/Cedar/AzureClient.c

@@ -205,7 +205,8 @@ void AcWaitForRequest(AZURE_CLIENT *ac, SOCK *s, AZURE_PARAM *param)
 									BinToStr(server_cert_hash_str, sizeof(server_cert_hash_str),
 										server_cert_hash, SHA1_SIZE);
 
-									if (IsEmptyStr(ac->DDnsStatusCopy.AzureCertHash) || StrCmpi(server_cert_hash_str, ac->DDnsStatusCopy.AzureCertHash) == 0)
+									if (IsEmptyStr(ac->DDnsStatusCopy.AzureCertHash) || StrCmpi(server_cert_hash_str, ac->DDnsStatusCopy.AzureCertHash) == 0
+										 || StrCmpi(server_cert_hash_str, ac->DDnsStatus.AzureCertHash) == 0)
 									{
 										if (SendAll(ns, AZURE_PROTOCOL_DATA_SIANGTURE, 24, true))
 										{

+ 6 - 9
src/Cedar/BridgeWin32.c

@@ -1894,6 +1894,12 @@ bool IsPcdSupported()
 	UINT type;
 	OS_INFO *info = GetOsInfo();
 
+	if (MsIsWindows10())
+	{
+		// Windows 10 or later never supports PCD driver.
+		return false;
+	}
+
 	type = info->OsType;
 
 	if (OS_IS_WINDOWS_NT(type) == false)
@@ -1972,11 +1978,6 @@ HINSTANCE InstallPcdDriverInternal()
 			src_filename = BRIDGE_WIN32_PCD_SYS_X64;
 		}
 
-		if (MsIsIA64())
-		{
-			src_filename = BRIDGE_WIN32_PCD_SYS_IA64;
-		}
-
 		// Copy see.sys
 		if (FileCopy(src_filename, tmp) == false)
 		{
@@ -1995,10 +1996,6 @@ HINSTANCE InstallPcdDriverInternal()
 		{
 			dll_filename = BRIDGE_WIN32_PCD_DLL_X64;
 		}
-		else if (MsIsIA64())
-		{
-			dll_filename = BRIDGE_WIN32_PCD_DLL_IA64;
-		}
 	}
 
 	// Try to load see.dll and initialize

+ 2 - 4
src/Cedar/BridgeWin32.h

@@ -116,11 +116,9 @@
 
 #define	BRIDGE_WIN32_PACKET_DLL		"Packet.dll"
 #define	BRIDGE_WIN32_PCD_DLL		"|see.dll"
-#define	BRIDGE_WIN32_PCD_SYS		"|see.sys"
+#define	BRIDGE_WIN32_PCD_SYS		"|DriverPackages\\See\\x86\\See_x86.sys"
 #define	BRIDGE_WIN32_PCD_DLL_X64	"|see_x64.dll"
-#define	BRIDGE_WIN32_PCD_SYS_X64	"|see_x64.sys"
-#define	BRIDGE_WIN32_PCD_DLL_IA64	"|see_ia64.dll"
-#define	BRIDGE_WIN32_PCD_SYS_IA64	"|see_ia64.sys"
+#define	BRIDGE_WIN32_PCD_SYS_X64	"|DriverPackages\\See\\x64\\See_x64.sys"
 #define	BRIDGE_WIN32_PCD_REGKEY		"SYSTEM\\CurrentControlSet\\services\\SEE"
 #define	BRIDGE_WIN32_PCD_BUILDVALUE	"CurrentInstalledBuild"
 

+ 8 - 8
src/Cedar/Cedar.h

@@ -135,10 +135,10 @@
 
 
 // Version number
-#define	CEDAR_VER					415
+#define	CEDAR_VER					417
 
 // Build Number
-#define	CEDAR_BUILD					9546
+#define	CEDAR_BUILD					9562
 
 // Beta number
 //#define	BETA_NUMBER					3
@@ -158,11 +158,11 @@
 
 // Specifies the build date
 #define	BUILD_DATE_Y		2015
-#define	BUILD_DATE_M		4
-#define	BUILD_DATE_D		5
-#define	BUILD_DATE_HO		2
-#define	BUILD_DATE_MI		54
-#define	BUILD_DATE_SE		8
+#define	BUILD_DATE_M		5
+#define	BUILD_DATE_D		30
+#define	BUILD_DATE_HO		17
+#define	BUILD_DATE_MI		41
+#define	BUILD_DATE_SE		38
 
 // Tolerable time difference
 #define	ALLOW_TIMESTAMP_DIFF		(UINT64)(3 * 24 * 60 * 60 * 1000)
@@ -242,7 +242,7 @@
 #define	FIFO_BUDGET					VPN_GP(GP_FIFO_BUDGET, 1000000)
 #endif	// USE_STRATEGY_LOW_MEMORY
 
-#define	MAX_PACKET_SIZE				1560	// Maximum packet size
+#define	MAX_PACKET_SIZE				1600	// Maximum packet size
 #define	UDP_BUF_SIZE				(32 * 1024) // Aim of the UDP packet size
 
 #ifndef	USE_STRATEGY_LOW_MEMORY

+ 10 - 1
src/Cedar/Command.c

@@ -23096,7 +23096,7 @@ UINT PsConnect(CONSOLE *c, char *host, UINT port, char *hub, char *adminhub, wch
 			// Failure
 			retcode = err;
 
-			if (err == ERR_ACCESS_DENIED)
+			if (err == ERR_ACCESS_DENIED && c->ProgrammingMode == false)
 			{
 				char *pass;
 				// Password is incorrect
@@ -23402,6 +23402,7 @@ UINT VpnCmdProc(CONSOLE *c, char *cmd_name, wchar_t *str, void *param)
 		{"OUT", NULL, NULL, NULL, NULL},
 		{"CMD", NULL, NULL, NULL, NULL},
 		{"CSV", NULL, NULL, NULL, NULL},
+		{"PROGRAMMING", NULL, NULL, NULL, NULL},
 	};
 
 #ifdef	OS_WIN32
@@ -23621,6 +23622,7 @@ UINT CommandMain(wchar_t *command_line)
 	wchar_t *infile, *outfile;
 	char *a_infile, *a_outfile;
 	wchar_t *csvmode;
+	wchar_t *programming_mode;
 	CONSOLE *c;
 
 	// Validate arguments
@@ -23664,6 +23666,13 @@ UINT CommandMain(wchar_t *command_line)
 			c->ConsoleType = CONSOLE_CSV;
 		}
 
+		programming_mode = ParseCommand(command_line, L"programming");
+		if (programming_mode != NULL)
+		{
+			Free(programming_mode);
+			c->ProgrammingMode = true;
+		}
+
 		if (DispatchNextCmdEx(c, command_line, ">", cmd, sizeof(cmd) / sizeof(cmd[0]), NULL) == false)
 		{
 			ret = ERR_INVALID_PARAMETER;

+ 25 - 1
src/Cedar/Console.c

@@ -769,6 +769,18 @@ bool DispatchNextCmdEx(CONSOLE *c, wchar_t *exec_command, char *prompt, CMD cmd[
 		// Show the prompt
 RETRY:
 		tmp = CopyStrToUni(prompt);
+
+		if (c->ProgrammingMode)
+		{
+			wchar_t tmp2[MAX_PATH];
+
+			UniFormat(tmp2, sizeof(tmp2), L"[PROMPT:%u:%s]\r\n", c->RetCode, tmp);
+
+			Free(tmp);
+
+			tmp = CopyUniStr(tmp2);
+		}
+
 		str = c->ReadLine(c, tmp, false);
 		Free(tmp);
 
@@ -1430,6 +1442,14 @@ EVAL_VALUE:
 						Free(str);
 						break;
 					}
+					else if (c->ProgrammingMode)
+					{
+						// In the programming mode, return the error immediately.
+						ok = false;
+						Free(name);
+						Free(str);
+						break;
+					}
 					else
 					{
 						// Request to re-enter
@@ -1458,7 +1478,11 @@ EVAL_VALUE:
 					wchar_t *tmp;
 SHOW_PROMPT:
 					// Prompt because it is a mandatory parameter
-					tmp = p->PromptProc(c, p->PromptProcParam);
+					tmp = NULL;
+					if (c->ProgrammingMode == false)
+					{
+						tmp = p->PromptProc(c, p->PromptProcParam);
+					}
 					if (tmp == NULL)
 					{
 						// User canceled

+ 1 - 0
src/Cedar/Console.h

@@ -160,6 +160,7 @@ struct CONSOLE
 	char *(*ReadPassword)(CONSOLE *c, wchar_t *prompt);		// Function to read the password
 	bool (*Write)(CONSOLE *c, wchar_t *str);				// Function to write a string
 	UINT (*GetWidth)(CONSOLE *c);							// Get the width of the screen
+	bool ProgrammingMode;									// Programming Mode
 };
 
 // Local console parameters

+ 17 - 5
src/Cedar/IPsec_Win7.c

@@ -367,10 +367,19 @@ bool IPsecWin7InitDriverInner()
 
 	if (install_driver)
 	{
-		char *src_filename = IPSEC_WIN7_SRC_SYS_X86;
-		if (MsIsX64())
+		char src_filename[MAX_PATH];
+
+		if (MsIsWindows10() == false)
+		{
+			Format(src_filename, sizeof(src_filename),
+				"|DriverPackages\\Wfp\\%s\\pxwfp_%s.sys",
+				(MsIsX64() ? "x64" : "x86"), (MsIsX64() ? "x64" : "x86"));
+		}
+		else
 		{
-			src_filename = IPSEC_WIN7_SRC_SYS_X64;
+			Format(src_filename, sizeof(src_filename),
+				"|DriverPackages\\Wfp_Win10\\%s\\pxwfp_%s.sys",
+				(MsIsX64() ? "x64" : "x86"), (MsIsX64() ? "x64" : "x86"));
 		}
 
 		// Copy the driver
@@ -467,13 +476,16 @@ bool IPsecWin7InitDriverInner()
 // Write the build number of the current driver
 void SetCurrentIPsecWin7DriverBuild()
 {
-	MsRegWriteInt(REG_LOCAL_MACHINE, IPSEC_WIN7_DRIVER_REGKEY, IPSEC_WIN7_DRIVER_BUILDNUMBER, CEDAR_BUILD);
+	MsRegWriteInt(REG_LOCAL_MACHINE, IPSEC_WIN7_DRIVER_REGKEY,
+		(MsIsWindows10() ? IPSEC_WIN7_DRIVER_BUILDNUMBER_WIN10 : IPSEC_WIN7_DRIVER_BUILDNUMBER),
+		CEDAR_BUILD);
 }
 
 // Get the build number of the current driver
 UINT GetCurrentIPsecWin7DriverBuild()
 {
-	return MsRegReadInt(REG_LOCAL_MACHINE, IPSEC_WIN7_DRIVER_REGKEY, IPSEC_WIN7_DRIVER_BUILDNUMBER);
+	return MsRegReadInt(REG_LOCAL_MACHINE, IPSEC_WIN7_DRIVER_REGKEY,
+		(MsIsWindows10() ? IPSEC_WIN7_DRIVER_BUILDNUMBER_WIN10 : IPSEC_WIN7_DRIVER_BUILDNUMBER));
 }
 
 // Initialization of the API

+ 1 - 0
src/Cedar/IPsec_Win7.h

@@ -127,6 +127,7 @@
 #define	IPSEC_WIN7_FILTER_TITLE_V6		CEDAR_PRODUCT_STR_W L" VPN IPsec Filter for IPv6"
 #define	IPSEC_WIN7_DRIVER_REGKEY		"SYSTEM\\CurrentControlSet\\services\\pxwfp"
 #define	IPSEC_WIN7_DRIVER_BUILDNUMBER	"CurrentInstalledBuild"
+#define	IPSEC_WIN7_DRIVER_BUILDNUMBER_WIN10	"CurrentInstalledBuild_Win10"
 
 
 // Function prototype

+ 0 - 18
src/Cedar/SW.c

@@ -4596,24 +4596,6 @@ UINT SwReady(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, WIZARD *wizard,
 		break;
 
 	case WM_WIZ_NEXT:
-		if (IsUseAlternativeHostname())
-		{
-			wchar_t src_dll1[MAX_PATH];
-			wchar_t src_dll2[MAX_PATH];
-			wchar_t *exe_dir = MsGetExeFileDirW();
-
-			CombinePathW(src_dll1, sizeof(src_dll1), exe_dir, VG_DLL_X86);
-			CombinePathW(src_dll2, sizeof(src_dll2), exe_dir, VG_DLL_X64);
-
-			if (IsFileExistsW(src_dll1) || IsFileExistsW(src_dll2))
-			{
-				if (MsgBoxEx(hWnd, MB_ICONQUESTION | MB_YESNO | MB_DEFBUTTON2,
-					_UU("SW_VG_CONFIRM_MSG")) == IDNO)
-				{
-					break;
-				}
-			}
-		}
 		return D_SW_PERFORM;
 
 	case WM_WIZ_BACK:

+ 45 - 6
src/Cedar/SeLowUser.c

@@ -175,7 +175,9 @@ bool SuInstallDriverInner(bool force)
 		char *path;
 
 		// Read the current version from the registry
-		current_sl_ver = MsRegReadIntEx2(REG_LOCAL_MACHINE, SL_REG_KEY_NAME, SL_REG_VER_VALUE, false, true);
+		current_sl_ver = MsRegReadIntEx2(REG_LOCAL_MACHINE, SL_REG_KEY_NAME,
+			(MsIsWindows10() ? SL_REG_VER_VALUE_WIN10 : SL_REG_VER_VALUE),
+			false, true);
 
 		path = MsRegReadStrEx2(REG_LOCAL_MACHINE, SL_REG_KEY_NAME, "ImagePath", false, true);
 
@@ -195,12 +197,33 @@ bool SuInstallDriverInner(bool force)
 	}
 
 	// Copy necessary files to a temporary directory
-	UniFormat(src_sys, sizeof(src_sys), L"|SeLow_%S.sys", cpu_type);
-	UniFormat(src_cat, sizeof(src_cat), L"|inf\\selow_%S\\inf.cat", cpu_type);
-	UniFormat(src_inf, sizeof(src_inf), L"|inf\\selow_%S\\SeLow_%S.inf", cpu_type, cpu_type);
+	UniFormat(src_sys, sizeof(src_sys), L"|DriverPackages\\%S\\%S\\SeLow_%S.sys",
+		(MsIsWindows10() ? "SeLow_Win10" : "SeLow_Win8"),
+		cpu_type, cpu_type);
+	if (MsIsWindows8() == false)
+	{
+		// Windows Vista and Windows 7 uses SHA-1 catalog files
+		UniFormat(src_cat, sizeof(src_cat), L"|DriverPackages\\SeLow_Win8\\%S\\inf.cat", cpu_type);
+	}
+	else
+	{
+		// Windows 8 or above uses SHA-256 catalog files
+		UniFormat(src_cat, sizeof(src_cat), L"|DriverPackages\\SeLow_Win8\\%S\\inf2.cat", cpu_type);
+
+		if (MsIsWindows10())
+		{
+			// Windows 10 uses WHQL catalog files
+			UniFormat(src_cat, sizeof(src_cat), L"|DriverPackages\\SeLow_Win10\\%S\\SeLow_Win10_%S.cat", cpu_type, cpu_type);
+		}
+	}
+	UniFormat(src_inf, sizeof(src_inf), L"|DriverPackages\\%S\\%S\\SeLow_%S.inf",
+		(MsIsWindows10() ? "SeLow_Win10" : "SeLow_Win8"),
+		cpu_type, cpu_type);
 
 	UniFormat(dst_sys, sizeof(dst_cat), L"%s\\SeLow_%S.sys", tmp_dir, cpu_type);
-	UniFormat(dst_cat, sizeof(dst_cat), L"%s\\inf_selow.cat", tmp_dir);
+	UniFormat(dst_cat, sizeof(dst_cat), L"%s\\SeLow_%S_%S.cat", tmp_dir,
+		(MsIsWindows10() ? "Win10" : "Win8"),
+		cpu_type);
 	UniFormat(dst_inf, sizeof(dst_inf), L"%s\\SeLow_%S.inf", tmp_dir, cpu_type);
 
 	if (FileCopyW(src_sys, dst_sys) &&
@@ -226,7 +249,9 @@ bool SuInstallDriverInner(bool force)
 			ret = true;
 
 			// Write the version number into the registry
-			MsRegWriteIntEx2(REG_LOCAL_MACHINE, SL_REG_KEY_NAME, SL_REG_VER_VALUE, SL_VER, false, true);
+			MsRegWriteIntEx2(REG_LOCAL_MACHINE, SL_REG_KEY_NAME,
+				(MsIsWindows10() ? SL_REG_VER_VALUE_WIN10 : SL_REG_VER_VALUE),
+				SL_VER, false, true);
 
 			// Set to automatic startup
 			MsRegWriteIntEx2(REG_LOCAL_MACHINE, SL_REG_KEY_NAME, "Start", SERVICE_SYSTEM_START, false, true);
@@ -738,6 +763,7 @@ SU *SuInitEx(UINT wait_for_bind_complete_tick)
 	UINT read_size;
 	bool flag = false;
 	UINT64 giveup_tick = 0;
+	bool flag2 = false;
 
 	if (SuIsSupportedOs(false) == false)
 	{
@@ -761,6 +787,19 @@ LABEL_RETRY:
 			if (MsStartService(SL_PROTOCOL_NAME) == false)
 			{
 				Debug("MsStartService(%s) Failed.\n", SL_PROTOCOL_NAME);
+
+				if (MsIsWindows10())
+				{
+					if (flag2 == false)
+					{
+						flag2 = true;
+
+						if (SuInstallDriver(true))
+						{
+							goto LABEL_RETRY;
+						}
+					}
+				}
 			}
 			else
 			{

+ 14 - 9
src/Cedar/VLanWin32.c

@@ -1135,19 +1135,24 @@ void VLanPaFree(SESSION *s)
 	{
 		char tmp[MAX_SIZE];
 		MS_ADAPTER *a;
+		UINT64 now = Tick64();
+		UINT64 suspend_tick = MsGetSuspendModeBeginTick();
 
-		Format(tmp, sizeof(tmp), VLAN_ADAPTER_NAME_TAG, v->InstanceName);
-		a = MsGetAdapter(tmp);
-
-		if (a != NULL)
+		if (suspend_tick == 0 || (suspend_tick + (UINT64)(30 * 1000)) < now)
 		{
-			if (a->UseDhcp)
+			Format(tmp, sizeof(tmp), VLAN_ADAPTER_NAME_TAG, v->InstanceName);
+			a = MsGetAdapter(tmp);
+
+			if (a != NULL)
 			{
-				bool ret = Win32ReleaseAddressByGuidEx(a->Guid, 50);
-				Debug("*** Win32ReleaseAddressByGuid = %u\n", ret);
-			}
+				if (a->UseDhcp)
+				{
+					bool ret = Win32ReleaseAddressByGuidEx(a->Guid, 50);
+					Debug("*** Win32ReleaseAddressByGuid = %u\n", ret);
+				}
 
-			MsFreeAdapter(a);
+				MsFreeAdapter(a);
+			}
 		}
 	}
 

+ 3 - 3
src/CurrentBuild.txt

@@ -1,4 +1,4 @@
-BUILD_NUMBER 9546
-VERSION 415
+BUILD_NUMBER 9562
+VERSION 417
 BUILD_NAME beta
-BUILD_DATE 20150405_025408
+BUILD_DATE 20150530_174138

+ 117 - 45
src/Mayaqua/Microsoft.c

@@ -218,6 +218,8 @@ static LOCK *vlan_lock = NULL;
 static COUNTER *suspend_handler_singleton = NULL;
 static COUNTER *vlan_card_counter = NULL;
 static volatile BOOL vlan_card_should_stop_flag = false;
+static volatile BOOL vlan_is_in_suspend_mode = false;
+static volatile UINT64 vlan_suspend_mode_begin_tick = 0;
 
 // msi.dll
 static HINSTANCE hMsi = NULL;
@@ -5794,10 +5796,14 @@ bool MsIsVLanCardShouldStop()
 void MsProcEnterSuspend()
 {
 	UINT64 giveup_tick = Tick64() + 2000;
-	UINT num = 0;
+	UINT num = Count(vlan_card_counter);
+
+	vlan_is_in_suspend_mode = true;
 
 	vlan_card_should_stop_flag = true;
 
+	vlan_suspend_mode_begin_tick = Tick64();
+
 	while (true)
 	{
 		UINT64 now = Tick64();
@@ -5811,19 +5817,29 @@ void MsProcEnterSuspend()
 		{
 			break;
 		}
-		num++;
 
 		SleepThread(100);
 	}
 
 	if (num >= 1)
 	{
-		SleepThread(512);
+		SleepThread(3000);
 	}
 }
 void MsProcLeaveSuspend()
 {
 	vlan_card_should_stop_flag = false;
+	vlan_is_in_suspend_mode = false;
+	vlan_suspend_mode_begin_tick = Tick64();
+}
+UINT64 MsGetSuspendModeBeginTick()
+{
+	if (vlan_is_in_suspend_mode)
+	{
+		return Tick64();
+	}
+
+	return vlan_suspend_mode_begin_tick;
 }
 
 // Suspend handler window proc
@@ -5852,26 +5868,22 @@ LRESULT CALLBACK MsSuspendHandlerWindowProc(HWND hWnd, UINT msg, WPARAM wParam,
 		break;
 
 	case WM_POWERBROADCAST:
-		switch (wParam)
+		if (MsIsVista())
 		{
-		case PBT_APMSUSPEND:
-			MsProcEnterSuspend();
-			return 1;
+			switch (wParam)
+			{
+			case PBT_APMSUSPEND:
+				MsProcEnterSuspend();
+				return 1;
 
-		case PBT_APMRESUMEAUTOMATIC:
-		case PBT_APMRESUMESUSPEND:
-			MsProcLeaveSuspend();
-			return 1;
+			case PBT_APMRESUMEAUTOMATIC:
+			case PBT_APMRESUMESUSPEND:
+				MsProcLeaveSuspend();
+				return 1;
+			}
 		}
 		break;
 
-	case WM_LBUTTONUP:
-		/*
-		MsProcEnterSuspend();
-		MsgBox(hWnd, 0, L"TEST");
-		MsProcLeaveSuspend();*/
-		break;
-
 	case WM_CLOSE:
 		/*if (h->AboutToClose == false)
 		{
@@ -5940,6 +5952,8 @@ void MsSuspendHandlerThreadProc(THREAD *thread, void *param)
 	}
 
 	vlan_card_should_stop_flag = false;
+	vlan_is_in_suspend_mode = false;
+	vlan_suspend_mode_begin_tick = 0;
 
 	DestroyWindow(hWnd);
 
@@ -5958,6 +5972,10 @@ MS_SUSPEND_HANDLER *MsNewSuspendHandler()
 		return NULL;
 	}
 
+	vlan_card_should_stop_flag = false;
+	vlan_is_in_suspend_mode = false;
+	vlan_suspend_mode_begin_tick = 0;
+
 	h = ZeroMalloc(sizeof(MS_SUSPEND_HANDLER));
 
 	t = NewThread(MsSuspendHandlerThreadProc, h);
@@ -5966,8 +5984,6 @@ MS_SUSPEND_HANDLER *MsNewSuspendHandler()
 
 	h->Thread = t;
 
-	vlan_card_should_stop_flag = false;
-
 	return h;
 }
 
@@ -8625,7 +8641,7 @@ bool MsInstallVLan9x(char *instance_name, MS_DRIVER_VER *ver)
 
 	MakeDir(otherdir);
 
-	Format(neo_sys, sizeof(neo_sys), DRIVER_INSTALL_SYS_NAME_TAG, instance_name);
+	Format(neo_sys, sizeof(neo_sys), "Neo_%s.sys", instance_name);
 
 	// Copy of vpn16.exe
 	FileCopy("|vpn16.exe", vpn16);
@@ -9552,7 +9568,7 @@ void MsGetInfCatalogDir(char *dst, UINT size)
 		return;
 	}
 
-	Format(dst, size, "|inf\\%s", (MsIsX64() ? "x64" : "x86"));
+	Format(dst, size, "|DriverPackages\\%s\\%s", (MsIsWindows10() ? "Neo6_Win10" : "Neo6_Win8"), (MsIsX64() ? "x64" : "x86"));
 }
 
 // Examine whether the virtual LAN card name can be used as a instance name of the VLAN
@@ -9569,7 +9585,8 @@ bool MsIsValidVLanInstanceNameForInfCatalog(char *instance_name)
 
 	MsGetInfCatalogDir(src_dir, sizeof(src_dir));
 
-	Format(tmp, sizeof(tmp), "%s\\INF_%s.inf", src_dir, instance_name);
+	Format(tmp, sizeof(tmp), "%s\\Neo6_%s_%s.inf", src_dir, (MsIsX64() ? "x64" : "x86"), instance_name);
+
 	ret = IsFile(tmp);
 
 	return ret;
@@ -9719,7 +9736,14 @@ bool MsInstallVLanWithoutLock(char *tag_name, char *connection_tag_name, char *i
 	}
 	else
 	{
-		Format(neo_sys, sizeof(neo_sys), DRIVER_INSTALL_SYS_NAME_TAG, instance_name);
+		if (MsIsWindows10() == false)
+		{
+			Format(neo_sys, sizeof(neo_sys), "Neo_%s.sys", instance_name);
+		}
+		else
+		{
+			Format(neo_sys, sizeof(neo_sys), "Neo6_%s_%s.sys", (MsIsX64() ? "x64" : "x86"), instance_name);
+		}
 	}
 
 	// Starting the Installation
@@ -10511,42 +10535,50 @@ void MsGetDriverPath(char *instance_name, wchar_t *src_inf, wchar_t *src_sys, wc
 		return;
 	}
 
-	src_filename = DRIVER_INF_FILE_NAME;
-	src_sys_filename = DRIVER_SYS_FILE_NAME;
+	// WinNT x86
+	src_filename = L"|DriverPackages\\Neo\\x86\\Neo_x86.inf";
+	src_sys_filename = L"|DriverPackages\\Neo\\x86\\Neo_x86.sys";
 
 	if (MsIsNt() == false)
 	{
-		src_filename = DRIVER_INF_FILE_NAME_9X;
-		src_sys_filename = DRIVER_SYS_FILE_NAME_9X;
+		// Win9x
+		src_filename = L"|DriverPackages\\Neo9x\\x86\\Neo9x_x86.inf";
+		src_sys_filename = L"|DriverPackages\\Neo9x\\x86\\Neo9x_x86.sys";
 	}
-	else if (MsIsIA64() || MsIsX64())
+	else if (MsIsX64())
 	{
+		// WinNT x64
+		src_filename = L"|DriverPackages\\Neo\\x64\\Neo_x64.inf";
+		src_sys_filename = L"|DriverPackages\\Neo\\x64\\Neo_x64.sys";
+	}
+
+	if (MsIsWindows7())
+	{
+		// Use the NDIS 6.2 driver for Windows 7 or later
 		if (MsIsX64())
 		{
-			src_filename = DRIVER_INF_FILE_NAME_X64;
-			src_sys_filename = DRIVER_SYS_FILE_NAME_X64;
+			src_filename = L"|DriverPackages\\Neo6\\x64\\Neo6_x64.inf";
+			src_sys_filename = L"|DriverPackages\\Neo6\\x64\\Neo6_x64.sys";
 		}
 		else
 		{
-			src_filename = DRIVER_INF_FILE_NAME_IA64;
-			src_sys_filename = DRIVER_SYS_FILE_NAME_IA64;
+			src_filename = L"|DriverPackages\\Neo6\\x86\\Neo6_x86.inf";
+			src_sys_filename = L"|DriverPackages\\Neo6\\x86\\Neo6_x86.sys";
 		}
 	}
 
-	if (MsIsWindows7())
+	if (MsIsInfCatalogRequired())
 	{
-		// Use the NDIS 6.2 driver for Windows 7 or later
+		// Windows 8 or later
 		if (MsIsX64())
 		{
-			src_sys_filename = DRIVER_SYS6_FILE_NAME_X64;
-		}
-		else if (MsIsIA64())
-		{
-			src_sys_filename = DRIVER_SYS6_FILE_NAME_IA64;
+			src_filename = L"|DriverPackages\\Neo6_Win8\\x64\\Neo6_x64.inf";
+			src_sys_filename = L"|DriverPackages\\Neo6_Win8\\x64\\Neo6_x64.sys";
 		}
 		else
 		{
-			src_sys_filename = DRIVER_SYS6_FILE_NAME;
+			src_filename = L"|DriverPackages\\Neo6_Win8\\x86\\Neo6_x86.inf";
+			src_sys_filename = L"|DriverPackages\\Neo6_Win8\\x86\\Neo6_x86.sys";
 		}
 	}
 
@@ -10554,27 +10586,43 @@ void MsGetDriverPath(char *instance_name, wchar_t *src_inf, wchar_t *src_sys, wc
 	{
 		if (MsIsInfCatalogRequired() == false)
 		{
+			// Windows 7 or before
 			UniStrCpy(src_inf, MAX_PATH, src_filename);
 		}
 		else
 		{
+			// Windows 8.1 or later
 			char tmp[MAX_SIZE];
 
 			MsGetInfCatalogDir(tmp, sizeof(tmp));
 
-			UniFormat(src_inf, MAX_PATH, L"%S\\INF_%S.inf", tmp, instance_name);
+			UniFormat(src_inf, MAX_PATH, L"%S\\Neo6_%S_%S.inf", tmp, (MsIsX64() ? "x64" : "x86"), instance_name);
 		}
 	}
 
 	if (src_sys != NULL)
 	{
 		UniStrCpy(src_sys, MAX_PATH, src_sys_filename);
+
+		if (MsIsWindows10())
+		{
+			UniFormat(src_sys, MAX_PATH, L"|DriverPackages\\Neo6_Win10\\%S\\Neo6_%S_%S.sys",
+				(MsIsX64() ? "x64" : "x86"), (MsIsX64() ? "x64" : "x86"), instance_name);
+		}
 	}
 
 	if (dest_inf != NULL)
 	{
 		char inf_name[MAX_PATH];
-		Format(inf_name, sizeof(inf_name), DRIVER_INSTALL_INF_NAME_TAG, instance_name);
+
+		if (MsIsInfCatalogRequired() == false)
+		{
+			Format(inf_name, sizeof(inf_name), "Neo_%s.inf", instance_name);
+		}
+		else
+		{
+			Format(inf_name, sizeof(inf_name), "Neo6_%s_%s.inf", (MsIsX64() ? "x64" : "x86"), instance_name);
+		}
 		UniFormat(dest_inf, MAX_PATH, L"%s\\%S", ms->MyTempDirW, inf_name);
 	}
 
@@ -10592,7 +10640,24 @@ void MsGetDriverPath(char *instance_name, wchar_t *src_inf, wchar_t *src_sys, wc
 			char tmp[MAX_SIZE];
 
 			MsGetInfCatalogDir(tmp, sizeof(tmp));
-			UniFormat(src_cat, MAX_PATH, L"%S\\inf.cat", tmp);
+
+			if (MsIsWindows8() == false)
+			{
+				// Windows Vista and Windows 7 uses SHA-1 catalog files
+				// (Unused? Never reach here!)
+				UniFormat(src_cat, MAX_PATH, L"%S\\inf.cat", tmp);
+			}
+			else
+			{
+				// Windows 8 or above uses SHA-256 catalog files
+				UniFormat(src_cat, MAX_PATH, L"%S\\inf2.cat", tmp);
+			}
+
+			if (MsIsWindows10())
+			{
+				// Windows 10
+				UniFormat(src_cat, MAX_PATH, L"%S\\Neo6_%S_%S.cat", tmp, (MsIsX64() ? "x64" : "x86"), instance_name);
+			}
 		}
 		else
 		{
@@ -10604,7 +10669,14 @@ void MsGetDriverPath(char *instance_name, wchar_t *src_inf, wchar_t *src_sys, wc
 	{
 		if (MsIsInfCatalogRequired())
 		{
-			UniFormat(dest_cat, MAX_PATH, L"%s\\inf_%S.cat", ms->MyTempDirW, instance_name);
+			if (MsIsWindows10() == false)
+			{
+				UniFormat(dest_cat, MAX_PATH, L"%s\\inf_%S.cat", ms->MyTempDirW, instance_name);
+			}
+			else
+			{
+				UniFormat(dest_cat, MAX_PATH, L"%s\\Neo6_%S_%S.cat", ms->MyTempDirW, (MsIsX64() ? "x64" : "x86"), instance_name);
+			}
 		}
 		else
 		{

+ 1 - 13
src/Mayaqua/Microsoft.h

@@ -234,19 +234,6 @@ typedef void *HWND;
 
 
 // Constants about driver
-#define	DRIVER_INF_FILE_NAME		L"|vpn_driver.inf"
-#define	DRIVER_INF_FILE_NAME_X64	L"|vpn_driver_x64.inf"
-#define	DRIVER_INF_FILE_NAME_IA64	L"|vpn_driver_ia64.inf"
-#define	DRIVER_INF_FILE_NAME_9X		L"|vpn_driver_9x.inf"
-#define	DRIVER_SYS_FILE_NAME		L"|vpn_driver.sys"
-#define	DRIVER_SYS_FILE_NAME_X64	L"|vpn_driver_x64.sys"
-#define	DRIVER_SYS_FILE_NAME_IA64	L"|vpn_driver_ia64.sys"
-#define	DRIVER_SYS_FILE_NAME_9X		L"|vpn_driver_9x.sys"
-#define	DRIVER_SYS6_FILE_NAME		L"|vpn_driver6.sys"
-#define	DRIVER_SYS6_FILE_NAME_X64	L"|vpn_driver6_x64.sys"
-#define	DRIVER_SYS6_FILE_NAME_IA64	L"|vpn_driver6_ia64.sys"
-#define	DRIVER_INSTALL_INF_NAME_TAG	"Neo_%s.inf"
-#define	DRIVER_INSTALL_SYS_NAME_TAG	"Neo_%s.sys"
 #define	DRIVER_INSTALL_SYS_NAME_TAG_NEW	"Neo_%04u.sys"
 #define	DRIVER_INSTALL_SYS_NAME_TAG_MAXID	128				// Maximum number of install
 
@@ -1158,6 +1145,7 @@ void MsEndVLanCard();
 bool MsIsVLanCardShouldStop();
 void MsProcEnterSuspend();
 void MsProcLeaveSuspend();
+UINT64 MsGetSuspendModeBeginTick();
 
 // Inner functions
 #ifdef	MICROSOFT_C

+ 1 - 1
src/Neo/NDIS5.c

@@ -1705,7 +1705,7 @@ void *NeoMalloc(UINT size)
 	}
 
 	// Allocate the non-paged memory
-	r = NdisAllocateMemoryWithTag(&p, size, 0);
+	r = NdisAllocateMemoryWithTag(&p, size, 'SETH');
 
 	if (NG(r))
 	{

+ 1 - 1
src/Neo/NDIS5.h

@@ -227,7 +227,7 @@ static UINT SupportedOids[] =
     WCHAR *_P;\
     _D->Length = (USHORT)((strlen(_S)) * sizeof(WCHAR));\
     _D->MaximumLength = _D->Length + sizeof(WCHAR);\
-    NdisAllocateMemoryWithTag((PVOID *)&(_D->Buffer), _D->MaximumLength, 0);\
+    NdisAllocateMemoryWithTag((PVOID *)&(_D->Buffer), _D->MaximumLength, 'SETH');\
     _P = _D->Buffer;\
     while(*_S != '\0'){\
         *_P = (WCHAR)(*_S);\

+ 1 - 1
src/Neo/Neo.h

@@ -124,7 +124,7 @@
 #define	NDIS_NEO_EVENT_NAME_WIN32			"Global\\NEO_EVENT_NEOADAPTER_%s"
 
 // Constant
-#define	NEO_MAX_PACKET_SIZE			1560
+#define	NEO_MAX_PACKET_SIZE			1600
 #define	NEO_MAX_PACKET_SIZE_ANNOUNCE	1514
 #define	NEO_MIN_PACKET_SIZE			14
 #define	NEO_PACKET_HEADER_SIZE		14

+ 6 - 6
src/Neo/Neo.vcproj

@@ -21,7 +21,7 @@
 	<Configurations>
 		<Configuration
 			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)bin"
+			OutputDirectory="$(SolutionDir)BuiltDriverPackages\Neo\x86"
 			IntermediateDirectory="$(PlatformName)_$(ConfigurationName)"
 			ConfigurationType="2"
 			CharacterSet="2"
@@ -72,14 +72,14 @@
 			/>
 			<Tool
 				Name="VCPreLinkEventTool"
-				CommandLine="$(SolutionDir)bin\BuildUtil.exe /CMD:GenerateVersionResource &quot;$(TargetPath)&quot; /OUT:&quot;$(SolutionDir)tmp\VersionResources\$(ProjectName)_$(PlatformName).res&quot;"
+				CommandLine="$(SolutionDir)bin\BuildUtil.exe /CMD:GenerateVersionResource &quot;$(TargetPath)&quot; /OUT:&quot;$(SolutionDir)tmp\VersionResources\$(ProjectName)_$(PlatformName).res&quot; /PRODUCT:&quot;SoftEther VPN&quot;"
 			/>
 			<Tool
 				Name="VCLinkerTool"
 				IgnoreImportLibrary="true"
 				AdditionalOptions="/driver /subsystem:native,5.00 /FULLBUILD /align:0x80 /osversion:5.00 /STACK:0x40000,0x1000 /MERGE:_PAGE=PAGE /MERGE:_TEXT=.text /NODEFAULTLIB /stub:C:\WINDDK\7600.16385.0\lib\wnet\stub512.com"
 				AdditionalDependencies="wdm.lib ndis.lib wdmsec.lib &quot;$(SolutionDir)tmp\VersionResources\$(ProjectName)_$(PlatformName).res&quot;"
-				OutputFile="$(OutDir)\hamcore\not_signed\vpn_driver.sys"
+				OutputFile="$(OutDir)\Neo_x86.sys"
 				LinkIncremental="1"
 				AdditionalLibraryDirectories="C:\WINDDK\7600.16385.0\lib\wnet\i386"
 				GenerateManifest="false"
@@ -125,7 +125,7 @@
 		</Configuration>
 		<Configuration
 			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)bin"
+			OutputDirectory="$(SolutionDir)BuiltDriverPackages\Neo\x64"
 			IntermediateDirectory="$(PlatformName)_$(ConfigurationName)"
 			ConfigurationType="2"
 			CharacterSet="2"
@@ -177,14 +177,14 @@
 			/>
 			<Tool
 				Name="VCPreLinkEventTool"
-				CommandLine="$(SolutionDir)bin\BuildUtil.exe /CMD:GenerateVersionResource &quot;$(TargetPath)&quot; /OUT:&quot;$(SolutionDir)tmp\VersionResources\$(ProjectName)_$(PlatformName).res&quot;"
+				CommandLine="$(SolutionDir)bin\BuildUtil.exe /CMD:GenerateVersionResource &quot;$(TargetPath)&quot; /OUT:&quot;$(SolutionDir)tmp\VersionResources\$(ProjectName)_$(PlatformName).res&quot; /PRODUCT:&quot;SoftEther VPN&quot;"
 			/>
 			<Tool
 				Name="VCLinkerTool"
 				IgnoreImportLibrary="true"
 				AdditionalOptions="/driver /subsystem:native /FULLBUILD /align:0x80 /osversion:5.00 /STACK:0x40000,0x1000 /MERGE:_PAGE=PAGE /MERGE:_TEXT=.text /NODEFAULTLIB /stub:C:\WINDDK\7600.16385.0\lib\wnet\stub512.com"
 				AdditionalDependencies="wdm.lib ndis.lib wdmsec.lib &quot;$(SolutionDir)tmp\VersionResources\$(ProjectName)_$(PlatformName).res&quot;"
-				OutputFile="$(OutDir)\hamcore\not_signed\vpn_driver_x64.sys"
+				OutputFile="$(OutDir)\Neo_x64.sys"
 				LinkIncremental="1"
 				AdditionalLibraryDirectories="C:\WINDDK\7600.16385.0\lib\wnet\amd64"
 				GenerateManifest="false"

+ 202 - 39
src/Neo6/NDIS6.c

@@ -208,11 +208,31 @@ NDIS_STATUS NeoNdisSetOptions(NDIS_HANDLE NdisDriverHandle, NDIS_HANDLE DriverCo
 
 NDIS_STATUS NeoNdisPause(NDIS_HANDLE MiniportAdapterContext, PNDIS_MINIPORT_PAUSE_PARAMETERS MiniportPauseParameters)
 {
+	UINT counter_dbg = 0;
+
+	ctx->Paused = true;
+
+	NeoLockPacketQueue();
+	NeoUnlockPacketQueue();
+
+	// Wait for complete all tasks
+	while (ctx->NumCurrentDispatch != 0)
+	{
+		NdisMSleep(10000);
+		counter_dbg++;
+		if (counter_dbg >= 1500)
+		{
+			break;
+		}
+	}
+
 	return NDIS_STATUS_SUCCESS;
 }
 
 NDIS_STATUS NeoNdisRestart(NDIS_HANDLE MiniportAdapterContext, PNDIS_MINIPORT_RESTART_PARAMETERS MiniportRestartParameters)
 {
+	ctx->Paused = false;
+
 	return NDIS_STATUS_SUCCESS;
 }
 
@@ -222,6 +242,7 @@ void NeoNdisReturnNetBufferLists(NDIS_HANDLE MiniportAdapterContext, PNET_BUFFER
 
 void NeoNdisCancelSend(NDIS_HANDLE MiniportAdapterContext, PVOID CancelId)
 {
+	//NeoNdisCrash2(__LINE__, __LINE__, __LINE__, __LINE__);
 }
 
 void NeoNdisDevicePnPEventNotify(NDIS_HANDLE MiniportAdapterContext, PNET_DEVICE_PNP_EVENT NetDevicePnPEvent)
@@ -234,6 +255,7 @@ void NeoNdisShutdownEx(NDIS_HANDLE MiniportAdapterContext, NDIS_SHUTDOWN_ACTION
 
 void NeoNdisCancelOidRequest(NDIS_HANDLE MiniportAdapterContext, PVOID RequestId)
 {
+	//NeoNdisCrash2(__LINE__, __LINE__, __LINE__, __LINE__);
 }
 
 // Initialization handler of adapter
@@ -243,6 +265,7 @@ NDIS_STATUS NeoNdisInitEx(NDIS_HANDLE MiniportAdapterHandle,
 {
 	NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES attr;
 	NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES gen;
+	NDIS_PM_CAPABILITIES pnpcap;
 
 	if (ctx == NULL)
 	{
@@ -281,7 +304,7 @@ NDIS_STATUS NeoNdisInitEx(NDIS_HANDLE MiniportAdapterHandle,
 	ctx->Halting = FALSE;
 	ctx->Connected = ctx->ConnectedOld = FALSE;
 
-	if (keep_link == false)
+	//if (keep_link == false)
 	{
 		ctx->ConnectedForce = TRUE;
 	}
@@ -305,6 +328,8 @@ NDIS_STATUS NeoNdisInitEx(NDIS_HANDLE MiniportAdapterHandle,
 
 	NdisMSetMiniportAttributes(ctx->NdisMiniport, (PNDIS_MINIPORT_ADAPTER_ATTRIBUTES)&attr);
 
+	NeoZero(&pnpcap, sizeof(pnpcap));
+
 	NeoZero(&gen, sizeof(gen));
 	gen.Header.Type = NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES;
 	gen.Header.Revision = NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES_REVISION_2;
@@ -354,6 +379,15 @@ NDIS_STATUS NeoNdisInitEx(NDIS_HANDLE MiniportAdapterHandle,
 	gen.SupportedOidList = SupportedOids;
 	gen.SupportedOidListLength = sizeof(SupportedOids);
 
+	NeoZero(&pnpcap, sizeof(pnpcap));
+	pnpcap.Header.Type = NDIS_OBJECT_TYPE_DEFAULT;
+	pnpcap.Header.Revision = NDIS_PM_CAPABILITIES_REVISION_1;
+	pnpcap.Header.Size = NDIS_SIZEOF_NDIS_PM_CAPABILITIES_REVISION_1;
+	pnpcap.MinMagicPacketWakeUp = NdisDeviceStateUnspecified;
+	pnpcap.MinPatternWakeUp  = NdisDeviceStateUnspecified;
+	pnpcap.MinLinkChangeWakeUp = NdisDeviceStateUnspecified;
+	gen.PowerManagementCapabilitiesEx = &pnpcap;
+
 	NdisMSetMiniportAttributes(ctx->NdisMiniport, (PNDIS_MINIPORT_ADAPTER_ATTRIBUTES)&gen);
 
 	// Initialize the received packet array
@@ -385,7 +419,7 @@ BOOL NeoNdisOnOpen(IRP *irp, IO_STACK_LOCATION *stack)
 		return FALSE;
 	}
 
-	if (ctx->Opened != FALSE)
+	if (ctx->Opened)
 	{
 		// Another client is connected already
 		return FALSE;
@@ -412,6 +446,7 @@ BOOL NeoNdisOnOpen(IRP *irp, IO_STACK_LOCATION *stack)
 // Close the device
 BOOL NeoNdisOnClose(IRP *irp, IO_STACK_LOCATION *stack)
 {
+	NEO_EVENT *free_event = NULL;
 	if (ctx == NULL)
 	{
 		return FALSE;
@@ -424,12 +459,21 @@ BOOL NeoNdisOnClose(IRP *irp, IO_STACK_LOCATION *stack)
 	}
 	ctx->Opened = FALSE;
 
-	// Release the event
-	NeoFreeEvent(ctx->Event);
-	ctx->Event = NULL;
+	NeoLockPacketQueue();
+	{
+		// Release the event
+		free_event = ctx->Event;
+		ctx->Event = NULL;
+
+		// Release all packets
+		NeoClearPacketQueue(true);
+	}
+	NeoUnlockPacketQueue();
 
-	// Release all packets
-	NeoClearPacketQueue();
+	if (free_event != NULL)
+	{
+		NeoFreeEvent(free_event);
+	}
 
 	NeoSetConnectState(FALSE);
 
@@ -465,6 +509,8 @@ NTSTATUS NeoNdisDispatch(DEVICE_OBJECT *DeviceObject, IRP *Irp)
 		return NDIS_STATUS_FAILURE;
 	}
 
+	InterlockedIncrement(&ctx->NumCurrentDispatch);
+
 	// Get the IRP stack
 	stack = IoGetCurrentIrpStackLocation(Irp);
 
@@ -478,8 +524,11 @@ NTSTATUS NeoNdisDispatch(DEVICE_OBJECT *DeviceObject, IRP *Irp)
 	{
 		// Device driver is terminating
 		Irp->IoStatus.Information = STATUS_UNSUCCESSFUL;
+		InterlockedDecrement(&ctx->NumCurrentDispatch);
+
 		IoCompleteRequest(Irp, IO_NO_INCREMENT);
-		return STATUS_UNSUCCESSFUL;
+
+		return STATUS_SUCCESS;
 	}
 
 	// Branch to each operation
@@ -586,6 +635,8 @@ NTSTATUS NeoNdisDispatch(DEVICE_OBJECT *DeviceObject, IRP *Irp)
 		break;
 	}
 
+	InterlockedDecrement(&ctx->NumCurrentDispatch);
+
 	IoCompleteRequest(Irp, IO_NO_INCREMENT);
 
 	return STATUS_SUCCESS;
@@ -616,6 +667,7 @@ void NeoInitControlDevice()
 		ctx->DispatchTable[IRP_MJ_WRITE] =
 		ctx->DispatchTable[IRP_MJ_DEVICE_CONTROL] = NeoNdisDispatch;
 	ctx->Opened = FALSE;
+	ctx->Paused = FALSE;
 
 	// Generate the device name
 	sprintf(name_kernel, NDIS_NEO_DEVICE_NAME, ctx->HardwareID);
@@ -728,6 +780,12 @@ BOOL NeoLoadRegistory()
 	{
 		// Special MAC address
 		UINT ptr32 = (UINT)((UINT64)ctx);
+		LARGE_INTEGER current_time;
+		UCHAR *current_time_bytes;
+
+		KeQuerySystemTime(&current_time);
+
+		current_time_bytes = (UCHAR *)&current_time;
 
 		ctx->MacAddress[0] = 0x00;
 		ctx->MacAddress[1] = 0xAD;
@@ -735,6 +793,16 @@ BOOL NeoLoadRegistory()
 		ctx->MacAddress[3] = ((UCHAR *)(&ptr32))[1];
 		ctx->MacAddress[4] = ((UCHAR *)(&ptr32))[2];
 		ctx->MacAddress[5] = ((UCHAR *)(&ptr32))[3];
+
+		ctx->MacAddress[2] ^= current_time_bytes[0];
+		ctx->MacAddress[3] ^= current_time_bytes[1];
+		ctx->MacAddress[4] ^= current_time_bytes[2];
+		ctx->MacAddress[5] ^= current_time_bytes[3];
+
+		ctx->MacAddress[2] ^= current_time_bytes[4];
+		ctx->MacAddress[3] ^= current_time_bytes[5];
+		ctx->MacAddress[4] ^= current_time_bytes[6];
+		ctx->MacAddress[5] ^= current_time_bytes[7];
 	}
 
 	// Initialize the key name of the device name
@@ -820,6 +888,8 @@ VOID NeoNdisDriverUnload(PDRIVER_OBJECT DriverObject)
 // Stop handler of adapter
 void NeoNdisHaltEx(NDIS_HANDLE MiniportAdapterContext, NDIS_HALT_ACTION HaltAction)
 {
+	NEO_EVENT *free_event = NULL;
+	UINT counter_dbg = 0;
 	if (ctx == NULL)
 	{
 		return;
@@ -832,15 +902,49 @@ void NeoNdisHaltEx(NDIS_HANDLE MiniportAdapterContext, NDIS_HALT_ACTION HaltActi
 	}
 	ctx->Halting = TRUE;
 
+	ctx->Opened = FALSE;
+
+	NeoLockPacketQueue();
+	{
+		// Release the event
+		free_event = ctx->Event;
+		ctx->Event = NULL;
+
+		// Release all packets
+		NeoClearPacketQueue(true);
+	}
+	NeoUnlockPacketQueue();
+
+	if (free_event != NULL)
+	{
+		NeoSet(free_event);
+	}
+
+	// Wait for complete all tasks
+	while (ctx->NumCurrentDispatch != 0)
+	{
+		NdisMSleep(10000);
+		counter_dbg++;
+		if (counter_dbg >= 1500)
+		{
+			break;
+		}
+	}
+
+	if (free_event != NULL)
+	{
+		NeoFreeEvent(free_event);
+	}
+
+	// Delete the control device
+	NeoFreeControlDevice();
+
 	// Stop the adapter
 	NeoStopAdapter();
 
 	// Release the packet array
 	NeoFreePacketArray();
 
-	// Delete the control device
-	NeoFreeControlDevice();
-
 	// Complete to stop
 	ctx->Initing = ctx->Inited = FALSE;
 	ctx->Connected = ctx->ConnectedForce = ctx->ConnectedOld = FALSE;
@@ -1293,29 +1397,81 @@ NDIS_STATUS NeoNdisSet(
 		// Multicast list
 		*BytesRead = InformationBufferLength;
 
+		return NDIS_STATUS_SUCCESS;
+
+	case OID_PNP_SET_POWER:
+	case OID_PNP_QUERY_POWER:
+		// Power events
+		*BytesRead = InformationBufferLength;
+
 		return NDIS_STATUS_SUCCESS;
 	}
 
 	return NDIS_STATUS_INVALID_OID;
 }
 
+// Set status values of NET_BUFFER_LISTs
+void NeoNdisSetNetBufferListsStatus(NET_BUFFER_LIST *nbl, UINT status)
+{
+	if (nbl == NULL)
+	{
+		return;
+	}
+
+	while (nbl != NULL)
+	{
+		NET_BUFFER_LIST_STATUS(nbl) = status;
+
+		nbl = NET_BUFFER_LIST_NEXT_NBL(nbl);
+	}
+}
+
 // Packet send handler
 void NeoNdisSendNetBufferLists(NDIS_HANDLE MiniportAdapterContext,
 							   NET_BUFFER_LIST *NetBufferLists,
 							   NDIS_PORT_NUMBER PortNumber,
 							   ULONG SendFlags)
 {
+	bool is_dispatch_level = SendFlags & NDIS_SEND_FLAGS_DISPATCH_LEVEL;
+	UINT send_complete_flags = 0;
 	if (ctx == NULL)
 	{
 		return;
 	}
 
+	if (is_dispatch_level)
+	{
+		send_complete_flags |= NDIS_SEND_COMPLETE_FLAGS_DISPATCH_LEVEL;
+	}
+
+	InterlockedIncrement(&ctx->NumCurrentDispatch);
+
 	// Update the connection state
 	NeoCheckConnectState();
 
-	if (NeoNdisSendPacketsHaltCheck(NetBufferLists) == FALSE)
+	if (ctx->Halting != FALSE || ctx->Opened == FALSE || ctx->Paused)
 	{
-		// Device is stopped
+		UINT status = NDIS_STATUS_FAILURE;
+
+		if (ctx->Paused)
+		{
+			status = NDIS_STATUS_PAUSED;
+		}
+		else if (ctx->Halting)
+		{
+			status = NDIS_STATUS_FAILURE;
+		}
+		else if (ctx->Opened == false && keep_link)
+		{
+			status = NDIS_STATUS_SUCCESS;
+		}
+
+		NeoNdisSetNetBufferListsStatus(NetBufferLists, status);
+
+		InterlockedDecrement(&ctx->NumCurrentDispatch);
+
+		NdisMSendNetBufferListsComplete(ctx->NdisMiniport, NetBufferLists, send_complete_flags);
+
 		return;
 	}
 
@@ -1323,10 +1479,32 @@ void NeoNdisSendNetBufferLists(NDIS_HANDLE MiniportAdapterContext,
 	NeoLockPacketQueue();
 	{
 		NET_BUFFER_LIST *nbl;
-		if (NeoNdisSendPacketsHaltCheck(NetBufferLists) == FALSE)
+
+		if (ctx->Halting != FALSE || ctx->Opened == FALSE || ctx->Paused)
 		{
-			// Device is stopped
+			UINT status = NDIS_STATUS_FAILURE;
+
+			if (ctx->Paused)
+			{
+				status = NDIS_STATUS_PAUSED;
+			}
+			else if (ctx->Halting)
+			{
+				status = NDIS_STATUS_FAILURE;
+			}
+			else if (ctx->Opened == false && keep_link)
+			{
+				status = NDIS_STATUS_SUCCESS;
+			}
+
 			NeoUnlockPacketQueue();
+
+			NeoNdisSetNetBufferListsStatus(NetBufferLists, status);
+
+			InterlockedDecrement(&ctx->NumCurrentDispatch);
+
+			NdisMSendNetBufferListsComplete(ctx->NdisMiniport, NetBufferLists, send_complete_flags);
+
 			return;
 		}
 
@@ -1336,6 +1514,8 @@ void NeoNdisSendNetBufferLists(NDIS_HANDLE MiniportAdapterContext,
 		{
 			NET_BUFFER *nb = NET_BUFFER_LIST_FIRST_NB(nbl);
 
+			NET_BUFFER_LIST_STATUS(nbl) = NDIS_STATUS_SUCCESS;
+
 			while (nb != NULL)
 			{
 				UINT size = NET_BUFFER_DATA_LENGTH(nb);
@@ -1388,33 +1568,15 @@ void NeoNdisSendNetBufferLists(NDIS_HANDLE MiniportAdapterContext,
 
 			nbl = NET_BUFFER_LIST_NEXT_NBL(nbl);
 		}
-	}
 
+		// Reception event
+		NeoSet(ctx->Event);
+	}
 	NeoUnlockPacketQueue();
 
 	// Notify the transmission completion
-	NdisMSendNetBufferListsComplete(ctx->NdisMiniport, NetBufferLists, NDIS_STATUS_SUCCESS);
-
-	// Reception event
-	NeoSet(ctx->Event);
-}
-
-// Stop check of packet transmission
-BOOL NeoNdisSendPacketsHaltCheck(NET_BUFFER_LIST *NetBufferLists)
-{
-	if (ctx == NULL)
-	{
-		return FALSE;
-	}
-
-	if (ctx->Halting != FALSE || ctx->Opened == FALSE)
-	{
-		// Halting
-		NdisMSendNetBufferListsComplete(ctx->NdisMiniport, NetBufferLists, NDIS_STATUS_FAILURE);
-
-		return FALSE;
-	}
-	return TRUE;
+	InterlockedDecrement(&ctx->NumCurrentDispatch);
+	NdisMSendNetBufferListsComplete(ctx->NdisMiniport, NetBufferLists, send_complete_flags);
 }
 
 // Initialize the packet array
@@ -1473,6 +1635,7 @@ PACKET_BUFFER *NeoNewPacketBuffer()
 	p1.ProtocolId = NDIS_PROTOCOL_ID_DEFAULT;
 	p1.fAllocateNetBuffer = TRUE;
 	p1.DataSize = NEO_MAX_PACKET_SIZE;
+	p1.PoolTag = 'SETH';
 	p->NetBufferListPool = NdisAllocateNetBufferListPool(NULL, &p1);
 
 	// Create a NET_BUFFER_LIST
@@ -1746,7 +1909,7 @@ void *NeoMalloc(UINT size)
 	}
 
 	// Allocate the non-paged memory
-	r = NdisAllocateMemoryWithTag(&p, size, 0);
+	r = NdisAllocateMemoryWithTag(&p, size, 'SETH');
 
 	if (NG(r))
 	{

+ 3 - 1
src/Neo6/NDIS6.h

@@ -184,6 +184,8 @@ static UINT SupportedOids[] =
 	OID_GEN_STATISTICS,
 	OID_GEN_INTERRUPT_MODERATION,
 	OID_GEN_LINK_PARAMETERS,
+	OID_PNP_SET_POWER,
+	OID_PNP_QUERY_POWER,
 	};
 #define	NEO_MEDIA					NdisMedium802_3
 #define	MAX_MULTICAST				32
@@ -237,7 +239,7 @@ void NeoNdisSendNetBufferLists(NDIS_HANDLE MiniportAdapterContext,
 							   NET_BUFFER_LIST *NetBufferLists,
 							   NDIS_PORT_NUMBER PortNumber,
 							   ULONG SendFlags);
-BOOL NeoNdisSendPacketsHaltCheck(NET_BUFFER_LIST *NetBufferLists);
+void NeoNdisSetNetBufferListsStatus(NET_BUFFER_LIST *nbl, UINT status);
 BOOL NeoLoadRegistory();
 void NeoInitControlDevice();
 void NeoFreeControlDevice();

+ 17 - 4
src/Neo6/Neo6.c

@@ -213,6 +213,12 @@ void NeoWrite(void *buf)
 		return;
 	}
 
+	if (ctx->Paused)
+	{
+		// Paused
+		return;
+	}
+
 	if (ctx->Opened == FALSE)
 	{
 		// Not connected
@@ -424,10 +430,14 @@ void NeoInitPacketQueue()
 }
 
 // Delete all the packets from the packet queue
-void NeoClearPacketQueue()
+void NeoClearPacketQueue(bool no_lock)
 {
 	// Release the memory of the packet queue
-	NeoLock(ctx->PacketQueueLock);
+	if (no_lock == false)
+	{
+		NeoLock(ctx->PacketQueueLock);
+	}
+	if (true)
 	{
 		NEO_QUEUE *q = ctx->PacketQueue;
 		NEO_QUEUE *qn;
@@ -442,14 +452,17 @@ void NeoClearPacketQueue()
 		ctx->Tail = NULL;
 		ctx->NumPacketQueue = 0;
 	}
-	NeoUnlock(ctx->PacketQueueLock);
+	if (no_lock == false)
+	{
+		NeoUnlock(ctx->PacketQueueLock);
+	}
 }
 
 // Release the packet queue
 void NeoFreePacketQueue()
 {
 	// Delete all packets
-	NeoClearPacketQueue();
+	NeoClearPacketQueue(false);
 
 	// Delete the lock
 	NeoFreeLock(ctx->PacketQueueLock);

+ 7 - 5
src/Neo6/Neo6.h

@@ -124,7 +124,7 @@
 #define	NDIS_NEO_EVENT_NAME_WIN32			"Global\\NEO_EVENT_NEOADAPTER_%s"
 
 // Constant
-#define	NEO_MAX_PACKET_SIZE			1560
+#define	NEO_MAX_PACKET_SIZE			1600
 #define	NEO_MAX_PACKET_SIZE_ANNOUNCE	1514
 #define	NEO_MIN_PACKET_SIZE			14
 #define	NEO_PACKET_HEADER_SIZE		14
@@ -268,10 +268,12 @@ typedef struct _PACKET_BUFFER
 typedef struct _NEO_CTX
 {
 	NEO_EVENT *Event;					// Packet reception notification event
-	BOOL Opened;						// Flag of whether opened
-	BOOL Inited;						// Initialization flag
-	BOOL Initing;						// Starting-up flag
+	volatile BOOL Opened;				// Flag of whether opened
+	volatile BOOL Paused;				// Flag of whether paused
+	volatile BOOL Inited;				// Initialization flag
+	volatile BOOL Initing;				// Starting-up flag
 	volatile BOOL Halting;				// Stopping flag
+	volatile UINT NumCurrentDispatch;	// Number of current dispatch requests
 	BYTE MacAddress[6];					// MAC address
 	BYTE padding[2];					// padding
 	NEO_QUEUE *PacketQueue;				// Transmit packet queue
@@ -308,7 +310,7 @@ BOOL NeoInit();
 void NeoShutdown();
 void NeoInitPacketQueue();
 void NeoFreePacketQueue();
-void NeoClearPacketQueue();
+void NeoClearPacketQueue(bool no_lock);
 void NeoLockPacketQueue();
 void NeoUnlockPacketQueue();
 NEO_QUEUE *NeoGetNextQueue();

+ 8 - 8
src/Neo6/Neo6.vcproj

@@ -21,7 +21,7 @@
 	<Configurations>
 		<Configuration
 			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)bin"
+			OutputDirectory="$(SolutionDir)BuiltDriverPackages\Neo6\x86"
 			IntermediateDirectory="$(PlatformName)_$(ConfigurationName)"
 			ConfigurationType="2"
 			CharacterSet="2"
@@ -72,7 +72,7 @@
 			/>
 			<Tool
 				Name="VCPreLinkEventTool"
-				CommandLine="$(SolutionDir)bin\BuildUtil.exe /CMD:GenerateVersionResource &quot;$(TargetPath)&quot; /OUT:&quot;$(SolutionDir)tmp\VersionResources\$(ProjectName)_$(PlatformName).res&quot;"
+				CommandLine="$(SolutionDir)bin\BuildUtil.exe /CMD:GenerateVersionResource &quot;$(TargetPath)&quot; /OUT:&quot;$(SolutionDir)tmp\VersionResources\$(ProjectName)_$(PlatformName).res&quot; /PRODUCT:&quot;SoftEther VPN&quot;"
 			/>
 			<Tool
 				Name="VCLinkerTool"
@@ -80,7 +80,7 @@
 				LinkLibraryDependencies="false"
 				AdditionalOptions="/driver /subsystem:native,5.00 /FULLBUILD /align:0x80 /osversion:5.00 /STACK:0x40000,0x1000 /MERGE:_PAGE=PAGE /MERGE:_TEXT=.text /NODEFAULTLIB /stub:C:\WINDDK\7600.16385.0\lib\win7\stub512.com"
 				AdditionalDependencies="wdm.lib ndis.lib ntoskrnl.lib fwpkclnt.lib &quot;$(SolutionDir)tmp\VersionResources\$(ProjectName)_$(PlatformName).res&quot;"
-				OutputFile="$(OutDir)\hamcore\not_signed\vpn_driver6.sys"
+				OutputFile="$(OutDir)\Neo6_x86.sys"
 				LinkIncremental="1"
 				AdditionalLibraryDirectories="C:\WINDDK\7600.16385.0\lib\win7\i386"
 				GenerateManifest="false"
@@ -121,12 +121,12 @@
 			/>
 			<Tool
 				Name="VCPostBuildEventTool"
-				CommandLine="$(SolutionDir)bin\BuildUtil.exe /CMD:SignCode &quot;$(TargetPath)&quot; /COMMENT:&quot;VPN Software&quot; /KERNEL:yes&#x0D;&#x0A;$(SolutionDir)bin\BuildUtil.exe /CMD:GenerateWin8InfFiles x86&#x0D;&#x0A;"
+				CommandLine="$(SolutionDir)bin\BuildUtil.exe /CMD:SignCode &quot;$(TargetPath)&quot; /COMMENT:&quot;VPN Software&quot; /KERNEL:yes&#x0D;&#x0A;"
 			/>
 		</Configuration>
 		<Configuration
 			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)bin"
+			OutputDirectory="$(SolutionDir)BuiltDriverPackages\Neo6\x64"
 			IntermediateDirectory="$(PlatformName)_$(ConfigurationName)"
 			ConfigurationType="2"
 			CharacterSet="2"
@@ -178,7 +178,7 @@
 			/>
 			<Tool
 				Name="VCPreLinkEventTool"
-				CommandLine="$(SolutionDir)bin\BuildUtil.exe /CMD:GenerateVersionResource &quot;$(TargetPath)&quot; /OUT:&quot;$(SolutionDir)tmp\VersionResources\$(ProjectName)_$(PlatformName).res&quot;"
+				CommandLine="$(SolutionDir)bin\BuildUtil.exe /CMD:GenerateVersionResource &quot;$(TargetPath)&quot; /OUT:&quot;$(SolutionDir)tmp\VersionResources\$(ProjectName)_$(PlatformName).res&quot; /PRODUCT:&quot;SoftEther VPN&quot;"
 			/>
 			<Tool
 				Name="VCLinkerTool"
@@ -186,7 +186,7 @@
 				LinkLibraryDependencies="false"
 				AdditionalOptions="/driver /subsystem:native /FULLBUILD /align:0x80 /osversion:5.00 /STACK:0x40000,0x1000 /MERGE:_PAGE=PAGE /MERGE:_TEXT=.text /NODEFAULTLIB /stub:C:\WINDDK\7600.16385.0\lib\win7\stub512.com"
 				AdditionalDependencies="wdm.lib ndis.lib wdmsec.lib ntoskrnl.lib fwpkclnt.lib &quot;$(SolutionDir)tmp\VersionResources\$(ProjectName)_$(PlatformName).res&quot;"
-				OutputFile="$(OutDir)\hamcore\not_signed\vpn_driver6_x64.sys"
+				OutputFile="$(OutDir)\Neo6_x64.sys"
 				LinkIncremental="1"
 				AdditionalLibraryDirectories="C:\WINDDK\7600.16385.0\lib\win7\amd64"
 				GenerateManifest="false"
@@ -227,7 +227,7 @@
 			/>
 			<Tool
 				Name="VCPostBuildEventTool"
-				CommandLine="$(SolutionDir)bin\BuildUtil.exe /CMD:SignCode &quot;$(TargetPath)&quot; /COMMENT:&quot;VPN Software&quot; /KERNEL:yes&#x0D;&#x0A;$(SolutionDir)bin\BuildUtil.exe /CMD:GenerateWin8InfFiles x64&#x0D;&#x0A;"
+				CommandLine="$(SolutionDir)bin\BuildUtil.exe /CMD:SignCode &quot;$(TargetPath)&quot; /COMMENT:&quot;VPN Software&quot; /KERNEL:yes&#x0D;&#x0A;"
 			/>
 		</Configuration>
 	</Configurations>

+ 0 - 5
src/SEVPN.sln

@@ -15,16 +15,11 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "hamcore", "hamcore", "{2349
 	ProjectSection(SolutionItems) = preProject
 		bin\hamcore\lang.config = bin\hamcore\lang.config
 		bin\hamcore\languages.txt = bin\hamcore\languages.txt
-		bin\hamcore\SeLow_x64.inf = bin\hamcore\SeLow_x64.inf
-		bin\hamcore\SeLow_x86.inf = bin\hamcore\SeLow_x86.inf
 		bin\hamcore\strtable_cn.stb = bin\hamcore\strtable_cn.stb
 		bin\hamcore\strtable_en.stb = bin\hamcore\strtable_en.stb
 		bin\hamcore\strtable_ja.stb = bin\hamcore\strtable_ja.stb
 		bin\hamcore\time.htm = bin\hamcore\time.htm
 		bin\hamcore\vpn16.exe = bin\hamcore\vpn16.exe
-		bin\hamcore\vpn_driver.inf = bin\hamcore\vpn_driver.inf
-		bin\hamcore\vpn_driver_9x.inf = bin\hamcore\vpn_driver_9x.inf
-		bin\hamcore\vpn_driver_x64.inf = bin\hamcore\vpn_driver_x64.inf
 	EndProjectSection
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "BuildFiles", "BuildFiles", "{ECFF92D4-8F03-4DDF-ACEF-9A68589BC282}"

+ 2 - 1
src/SeLow/SeLow.c

@@ -393,6 +393,7 @@ NTSTATUS SlDeviceOpenProc(DEVICE_OBJECT *device_object, IRP *irp)
 					p.fAllocateNetBuffer = true;
 					p.ContextSize = 32 + sizeof(UINT32) * 12;
 					p.DataSize = SL_MAX_PACKET_SIZE;
+					p.PoolTag = 'SETH';
 
 					f->NetBufferListPool = NdisAllocateNetBufferListPool(NULL, &p);
 
@@ -1705,7 +1706,7 @@ void *SlMalloc(UINT size)
 	}
 
 	// Allocate the non-paged memory
-	r = NdisAllocateMemoryWithTag(&p, size, 0);
+	r = NdisAllocateMemoryWithTag(&p, size, 'SETH');
 
 	if (NG(r))
 	{

+ 8 - 8
src/SeLow/SeLow.vcproj

@@ -21,7 +21,7 @@
 	<Configurations>
 		<Configuration
 			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)bin"
+			OutputDirectory="$(SolutionDir)BuiltDriverPackages\SeLow\x86"
 			IntermediateDirectory="$(PlatformName)_$(ConfigurationName)"
 			ConfigurationType="2"
 			CharacterSet="2"
@@ -72,7 +72,7 @@
 			/>
 			<Tool
 				Name="VCPreLinkEventTool"
-				CommandLine="$(SolutionDir)bin\BuildUtil.exe /CMD:GenerateVersionResource &quot;$(TargetPath)&quot; /OUT:&quot;$(SolutionDir)tmp\VersionResources\$(ProjectName)_$(PlatformName).res&quot;"
+				CommandLine="$(SolutionDir)bin\BuildUtil.exe /CMD:GenerateVersionResource &quot;$(TargetPath)&quot; /OUT:&quot;$(SolutionDir)tmp\VersionResources\$(ProjectName)_$(PlatformName).res&quot; /PRODUCT:&quot;SoftEther VPN&quot;"
 			/>
 			<Tool
 				Name="VCLinkerTool"
@@ -80,7 +80,7 @@
 				LinkLibraryDependencies="false"
 				AdditionalOptions="/driver /subsystem:native,5.00 /FULLBUILD /align:0x80 /osversion:5.00 /STACK:0x40000,0x1000 /MERGE:_PAGE=PAGE /MERGE:_TEXT=.text /NODEFAULTLIB /stub:C:\WINDDK\7600.16385.0\lib\win7\stub512.com"
 				AdditionalDependencies="bufferoverflowK.lib wdm.lib ndis.lib wdmsec.lib ntoskrnl.lib fwpkclnt.lib &quot;$(SolutionDir)tmp\VersionResources\$(ProjectName)_$(PlatformName).res&quot;"
-				OutputFile="$(OutDir)\hamcore\not_signed\SeLow_x86.sys"
+				OutputFile="$(OutDir)\SeLow_x86.sys"
 				LinkIncremental="1"
 				AdditionalLibraryDirectories="C:\WINDDK\7600.16385.0\lib\win7\i386"
 				GenerateManifest="false"
@@ -121,12 +121,12 @@
 			/>
 			<Tool
 				Name="VCPostBuildEventTool"
-				CommandLine="$(SolutionDir)bin\BuildUtil.exe /CMD:SignCode &quot;$(TargetPath)&quot; /COMMENT:&quot;VPN Software&quot; /KERNEL:yes&#x0D;&#x0A;$(SolutionDir)bin\BuildUtil.exe /CMD:SignSeLowInfFiles x86&#x0D;&#x0A;"
+				CommandLine="$(SolutionDir)bin\BuildUtil.exe /CMD:SignCode &quot;$(TargetPath)&quot; /COMMENT:&quot;VPN Software&quot; /KERNEL:yes&#x0D;&#x0A;"
 			/>
 		</Configuration>
 		<Configuration
 			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)bin"
+			OutputDirectory="$(SolutionDir)BuiltDriverPackages\SeLow\x64"
 			IntermediateDirectory="$(PlatformName)_$(ConfigurationName)"
 			ConfigurationType="2"
 			CharacterSet="2"
@@ -178,7 +178,7 @@
 			/>
 			<Tool
 				Name="VCPreLinkEventTool"
-				CommandLine="$(SolutionDir)bin\BuildUtil.exe /CMD:GenerateVersionResource &quot;$(TargetPath)&quot; /OUT:&quot;$(SolutionDir)tmp\VersionResources\$(ProjectName)_$(PlatformName).res&quot;"
+				CommandLine="$(SolutionDir)bin\BuildUtil.exe /CMD:GenerateVersionResource &quot;$(TargetPath)&quot; /OUT:&quot;$(SolutionDir)tmp\VersionResources\$(ProjectName)_$(PlatformName).res&quot; /PRODUCT:&quot;SoftEther VPN&quot;"
 			/>
 			<Tool
 				Name="VCLinkerTool"
@@ -186,7 +186,7 @@
 				LinkLibraryDependencies="false"
 				AdditionalOptions="/driver /subsystem:native /FULLBUILD /align:0x80 /osversion:5.00 /STACK:0x40000,0x1000 /MERGE:_PAGE=PAGE /MERGE:_TEXT=.text /NODEFAULTLIB /stub:C:\WINDDK\7600.16385.0\lib\win7\stub512.com"
 				AdditionalDependencies="bufferoverflowK.lib wdm.lib ndis.lib wdmsec.lib ntoskrnl.lib fwpkclnt.lib &quot;$(SolutionDir)tmp\VersionResources\$(ProjectName)_$(PlatformName).res&quot;"
-				OutputFile="$(OutDir)\hamcore\not_signed\SeLow_x64.sys"
+				OutputFile="$(OutDir)\SeLow_x64.sys"
 				LinkIncremental="1"
 				AdditionalLibraryDirectories="C:\WINDDK\7600.16385.0\lib\win7\amd64"
 				GenerateManifest="false"
@@ -227,7 +227,7 @@
 			/>
 			<Tool
 				Name="VCPostBuildEventTool"
-				CommandLine="$(SolutionDir)bin\BuildUtil.exe /CMD:SignCode &quot;$(TargetPath)&quot; /COMMENT:&quot;VPN Software&quot; /KERNEL:yes&#x0D;&#x0A;$(SolutionDir)bin\BuildUtil.exe /CMD:SignSeLowInfFiles x64&#x0D;&#x0A;"
+				CommandLine="$(SolutionDir)bin\BuildUtil.exe /CMD:SignCode &quot;$(TargetPath)&quot; /COMMENT:&quot;VPN Software&quot; /KERNEL:yes&#x0D;&#x0A;"
 			/>
 		</Configuration>
 	</Configurations>

+ 3 - 2
src/SeLow/SeLowCommon.h

@@ -115,10 +115,10 @@
 // Change this number every time functions are added or modified on the driver.
 // As long as this number does not change, installation of SeLow during the update
 // installation of the VPN Server / VPN Client / VPN Bridge is skipped.
-#define	SL_VER						43
+#define	SL_VER						45
 
 // Constants
-#define	SL_MAX_PACKET_SIZE			1560
+#define	SL_MAX_PACKET_SIZE			1600
 #define	SL_MAX_PACKET_SIZE_ANNOUNCE	1514
 #define	SL_MIN_PACKET_SIZE			14
 #define	SL_PACKET_HEADER_SIZE		14
@@ -155,6 +155,7 @@ typedef struct SL_IOCTL_EVENT_NAME
 // Registry key
 #define	SL_REG_KEY_NAME					"SYSTEM\\CurrentControlSet\\services\\SeLow"
 #define	SL_REG_VER_VALUE				"SlVersion"
+#define	SL_REG_VER_VALUE_WIN10			"SlVersion_Win10"
 
 // Adapter data
 #define	SL_ADAPTER_ID_LEN				64

+ 1 - 1
src/See/Openclos.c

@@ -342,7 +342,7 @@ VOID NPF_OpenAdapterComplete(
 		if (RequestListEntry == NULL)
 		{
 
-		    Open->MaxFrameSize = 1560;	// Assume Ethernet
+		    Open->MaxFrameSize = 1600;	// Assume Ethernet
 
 			Irp->IoStatus.Status = Status;
 		    Irp->IoStatus.Information = 0;

+ 1 - 1
src/See/Packet.c

@@ -1379,7 +1379,7 @@ NPF_RequestComplete(
 		ExInterlockedInsertTailList(&Open->RequestList, &pRequest->ListElement, &Open->RequestSpinLock);
 
 	    if(Status != NDIS_STATUS_SUCCESS)
-			Open->MaxFrameSize = 1560;	// Assume Ethernet
+			Open->MaxFrameSize = 1600;	// Assume Ethernet
 
 		// We always return success, because the adapter has been already opened
 		Irp->IoStatus.Status = NDIS_STATUS_SUCCESS;

+ 6 - 6
src/See/See.vcproj

@@ -21,7 +21,7 @@
 	<Configurations>
 		<Configuration
 			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)bin"
+			OutputDirectory="$(SolutionDir)BuiltDriverPackages\See\x86"
 			IntermediateDirectory="$(PlatformName)_$(ConfigurationName)"
 			ConfigurationType="2"
 			CharacterSet="2"
@@ -71,13 +71,13 @@
 			/>
 			<Tool
 				Name="VCPreLinkEventTool"
-				CommandLine="$(SolutionDir)bin\BuildUtil.exe /CMD:GenerateVersionResource &quot;$(TargetPath)&quot; /OUT:&quot;$(SolutionDir)tmp\VersionResources\$(ProjectName)_$(PlatformName).res&quot;"
+				CommandLine="$(SolutionDir)bin\BuildUtil.exe /CMD:GenerateVersionResource &quot;$(TargetPath)&quot; /OUT:&quot;$(SolutionDir)tmp\VersionResources\$(ProjectName)_$(PlatformName).res&quot; /PRODUCT:&quot;SoftEther VPN&quot;"
 			/>
 			<Tool
 				Name="VCLinkerTool"
 				AdditionalOptions="/driver /subsystem:native,5.00 /FULLBUILD /align:0x80 /osversion:5.00 /MERGE:_PAGE=PAGE /MERGE:_TEXT=.text /NODEFAULTLIB"
 				AdditionalDependencies="ntoskrnl.lib hal.lib wmilib.lib ndis.lib &quot;$(SolutionDir)tmp\VersionResources\$(ProjectName)_$(PlatformName).res&quot;"
-				OutputFile="$(OutDir)\hamcore\not_signed\see.sys"
+				OutputFile="$(OutDir)\See_x86.sys"
 				LinkIncremental="1"
 				AdditionalLibraryDirectories="C:\WINDDK\7600.16385.0\lib\wnet\i386"
 				GenerateManifest="false"
@@ -124,7 +124,7 @@
 		</Configuration>
 		<Configuration
 			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)bin"
+			OutputDirectory="$(SolutionDir)BuiltDriverPackages\See\x64"
 			IntermediateDirectory="$(PlatformName)_$(ConfigurationName)"
 			ConfigurationType="2"
 			CharacterSet="2"
@@ -175,13 +175,13 @@
 			/>
 			<Tool
 				Name="VCPreLinkEventTool"
-				CommandLine="$(SolutionDir)bin\BuildUtil.exe /CMD:GenerateVersionResource &quot;$(TargetPath)&quot; /OUT:&quot;$(SolutionDir)tmp\VersionResources\$(ProjectName)_$(PlatformName).res&quot;"
+				CommandLine="$(SolutionDir)bin\BuildUtil.exe /CMD:GenerateVersionResource &quot;$(TargetPath)&quot; /OUT:&quot;$(SolutionDir)tmp\VersionResources\$(ProjectName)_$(PlatformName).res&quot; /PRODUCT:&quot;SoftEther VPN&quot;"
 			/>
 			<Tool
 				Name="VCLinkerTool"
 				AdditionalOptions="/driver /subsystem:native /FULLBUILD /align:0x80 /osversion:5.00 /MERGE:_PAGE=PAGE /MERGE:_TEXT=.text /NODEFAULTLIB"
 				AdditionalDependencies="ntoskrnl.lib hal.lib wmilib.lib ndis.lib &quot;$(SolutionDir)tmp\VersionResources\$(ProjectName)_$(PlatformName).res&quot;"
-				OutputFile="$(OutDir)\hamcore\not_signed\see_x64.sys"
+				OutputFile="$(OutDir)\See_x64.sys"
 				LinkIncremental="1"
 				AdditionalLibraryDirectories="C:\WINDDK\7600.16385.0\lib\wnet\amd64"
 				GenerateManifest="false"

+ 6 - 6
src/Wfp/Wfp.vcproj

@@ -21,7 +21,7 @@
 	<Configurations>
 		<Configuration
 			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)bin"
+			OutputDirectory="$(SolutionDir)BuiltDriverPackages\Wfp\x86"
 			IntermediateDirectory="$(PlatformName)_$(ConfigurationName)"
 			ConfigurationType="2"
 			CharacterSet="2"
@@ -73,14 +73,14 @@
 			/>
 			<Tool
 				Name="VCPreLinkEventTool"
-				CommandLine="$(SolutionDir)bin\BuildUtil.exe /CMD:GenerateVersionResource &quot;$(TargetPath)&quot; /OUT:&quot;$(SolutionDir)tmp\VersionResources\$(ProjectName)_$(PlatformName).res&quot;"
+				CommandLine="$(SolutionDir)bin\BuildUtil.exe /CMD:GenerateVersionResource &quot;$(TargetPath)&quot; /OUT:&quot;$(SolutionDir)tmp\VersionResources\$(ProjectName)_$(PlatformName).res&quot; /PRODUCT:&quot;SoftEther VPN&quot;"
 			/>
 			<Tool
 				Name="VCLinkerTool"
 				IgnoreImportLibrary="true"
 				AdditionalOptions="/driver /subsystem:native,6.00 /FULLBUILD /align:0x80 /osversion:6.00 /STACK:0x40000,0x1000 /MERGE:_PAGE=PAGE /MERGE:_TEXT=.text /NODEFAULTLIB /stub:C:\WINDDK\7600.16385.0\lib\wlh\stub512.com"
 				AdditionalDependencies="wdm.lib ndis.lib ntoskrnl.lib fwpkclnt.lib &quot;$(SolutionDir)tmp\VersionResources\$(ProjectName)_$(PlatformName).res&quot;"
-				OutputFile="$(OutDir)\hamcore\not_signed\pxwfp_x86.sys"
+				OutputFile="$(OutDir)\pxwfp_x86.sys"
 				LinkIncremental="1"
 				AdditionalLibraryDirectories="C:\WINDDK\7600.16385.0\lib\wlh\i386"
 				GenerateManifest="false"
@@ -126,7 +126,7 @@
 		</Configuration>
 		<Configuration
 			Name="Release|x64"
-			OutputDirectory="$(SolutionDir)bin"
+			OutputDirectory="$(SolutionDir)BuiltDriverPackages\Wfp\x64"
 			IntermediateDirectory="$(PlatformName)_$(ConfigurationName)"
 			ConfigurationType="2"
 			CharacterSet="2"
@@ -177,14 +177,14 @@
 			/>
 			<Tool
 				Name="VCPreLinkEventTool"
-				CommandLine="$(SolutionDir)bin\BuildUtil.exe /CMD:GenerateVersionResource &quot;$(TargetPath)&quot; /OUT:&quot;$(SolutionDir)tmp\VersionResources\$(ProjectName)_$(PlatformName).res&quot;"
+				CommandLine="$(SolutionDir)bin\BuildUtil.exe /CMD:GenerateVersionResource &quot;$(TargetPath)&quot; /OUT:&quot;$(SolutionDir)tmp\VersionResources\$(ProjectName)_$(PlatformName).res&quot; /PRODUCT:&quot;SoftEther VPN&quot;"
 			/>
 			<Tool
 				Name="VCLinkerTool"
 				IgnoreImportLibrary="true"
 				AdditionalOptions="/driver /subsystem:native /FULLBUILD /align:0x80 /osversion:6.00 /STACK:0x40000,0x1000 /MERGE:_PAGE=PAGE /MERGE:_TEXT=.text /NODEFAULTLIB /stub:C:\WINDDK\7600.16385.0\lib\wlh\stub512.com"
 				AdditionalDependencies="wdm.lib ndis.lib wdmsec.lib ntoskrnl.lib fwpkclnt.lib &quot;$(SolutionDir)tmp\VersionResources\$(ProjectName)_$(PlatformName).res&quot;"
-				OutputFile="$(OutDir)\hamcore\not_signed\pxwfp_x64.sys"
+				OutputFile="$(OutDir)\pxwfp_x64.sys"
 				LinkIncremental="1"
 				AdditionalLibraryDirectories="C:\WINDDK\7600.16385.0\lib\wlh\amd64"
 				GenerateManifest="false"

+ 11 - 4
src/bin/hamcore/vpn_driver_x64.inf → src/bin/hamcore/DriverPackages/Neo/x64/Neo_x64.inf

@@ -1,14 +1,17 @@
 ; VPN Client Device Driver for Windows 2000 and Greater
 ; 
-; Copyright (c) SoftEther VPN Project at University of Tsukuba, Japan. All Rights Reserved.
-; http://www.softether.org/
+; Copyright (c) SoftEther Corporation. All Rights Reserved.
+; http://www.softether.co.jp/
+;
+; BUILD 9558
 
 [Version]
 Signature					= "$Windows NT$"
 Class						= Net
 ClassGUID					= {4D36E972-E325-11CE-BFC1-08002BE10318}
 Provider					= %CompanyName%
-DriverVer					= $MONTH$/$DAY$/$YEAR$, $VER_MAJOR$.$VER_MINOR$.0.$VER_BUILD$
+DriverVer					= 05/29/2015, 4.16.0.9558
+;CatalogFile.NT				= $CATALOG_FILENAME$
 
 [Manufacturer]
 %CompanyName% 				= SoftEther, NTamd64
@@ -92,7 +95,7 @@ HKR, , EventMessageFile, 0x00020000, "%11%\IoLogMsg.dll;%12%\$TAG_SYS_NAME$"
 HKR, , TypesSupported, 0x00010001, 7
 
 [Strings]
-CompanyName					= "SoftEther VPN Project"
+CompanyName					= "SoftEther Corporation"
 DiskDescription				= "VPN Client Device Driver Install Disk"
 Neo.Service.Name			= "Neo_$TAG_INSTANCE_NAME$"
 Neo.Service.DispName		= "VPN Client Device Driver - $TAG_INSTANCE_NAME$"
@@ -105,3 +108,7 @@ MaxSpeed					= "Indicate Speed (Mbps)"
 KeepLink					= "Keep Link"
 On							= "On"
 Off							= "Off"
+
+
+; Auto Generated 20150530_023418.134
+

BIN
src/bin/hamcore/DriverPackages/Neo/x64/Neo_x64.sys


+ 11 - 4
src/bin/hamcore/vpn_driver.inf → src/bin/hamcore/DriverPackages/Neo/x86/Neo_x86.inf

@@ -1,14 +1,17 @@
 ; VPN Client Device Driver for Windows 2000 and Greater
 ; 
-; Copyright (c) SoftEther VPN Project at University of Tsukuba, Japan. All Rights Reserved.
-; http://www.softether.org/
+; Copyright (c) SoftEther Corporation. All Rights Reserved.
+; http://www.softether.co.jp/
+; 
+; BUILD 9558
 
 [Version]
 Signature					= "$Windows NT$"
 Class						= Net
 ClassGUID					= {4D36E972-E325-11CE-BFC1-08002BE10318}
 Provider					= %CompanyName%
-DriverVer					= $MONTH$/$DAY$/$YEAR$, $VER_MAJOR$.$VER_MINOR$.0.$VER_BUILD$
+DriverVer					= 05/29/2015, 4.16.0.9558
+;CatalogFile.NT				= $CATALOG_FILENAME$
 
 [Manufacturer]
 %CompanyName% 				= SoftEther
@@ -92,7 +95,7 @@ HKR, , EventMessageFile, 0x00020000, "%11%\IoLogMsg.dll;%12%\Neo_$TAG_INSTANCE_N
 HKR, , TypesSupported, 0x00010001, 7
 
 [Strings]
-CompanyName					= "SoftEther VPN Project"
+CompanyName					= "SoftEther Corporation"
 DiskDescription				= "VPN Client Device Driver Install Disk"
 Neo.Service.Name			= "Neo_$TAG_INSTANCE_NAME$"
 Neo.Service.DispName		= "VPN Client Device Driver - $TAG_INSTANCE_NAME$"
@@ -105,3 +108,7 @@ MaxSpeed					= "Indicate Speed (Mbps)"
 KeepLink					= "Keep Link"
 On							= "On"
 Off							= "Off"
+
+
+; Auto Generated 20150530_023418.131
+

BIN
src/bin/hamcore/DriverPackages/Neo/x86/Neo_x86.sys


+ 114 - 0
src/bin/hamcore/DriverPackages/Neo6/x64/Neo6_x64.inf

@@ -0,0 +1,114 @@
+; VPN Client Device Driver for Windows 2000 and Greater
+; 
+; Copyright (c) SoftEther Corporation. All Rights Reserved.
+; http://www.softether.co.jp/
+; 
+; BUILD 9558
+
+[Version]
+Signature					= "$Windows NT$"
+Class						= Net
+ClassGUID					= {4D36E972-E325-11CE-BFC1-08002BE10318}
+Provider					= %CompanyName%
+DriverVer					= 05/29/2015, 4.16.0.9558
+;CatalogFile.NT				= $CATALOG_FILENAME$
+
+[Manufacturer]
+%CompanyName% 				= SoftEther, NTamd64
+
+[SourceDisksNames]
+1=%DiskDescription%, "", , 
+
+[SourceDisksFiles]
+$TAG_SYS_NAME$	= 1
+
+[DestinationDirs]
+DefaultDestDir				= 12
+Neo.CopyFiles.Sys			= 12
+
+[Neo.CopyFiles.Sys]
+$TAG_SYS_NAME$, , , 2
+
+[SoftEther.NTamd64]
+%NeoAdapter.DeviceDesc%	= NeoAdapter.Install, NeoAdapter_$TAG_INSTANCE_NAME$
+
+[NeoAdapter.Install]
+Characteristics				= 0x1
+AddReg						= Neo.Reg, NeoAdapter.Ndi
+CopyFiles					= Neo.CopyFiles.Sys
+*IfType						= 6
+*MediaType					= 0
+*PhysicalMediaType			= 0
+
+[NeoAdapter.Install.Services]
+AddService					= %Neo.Service.Name%, 2, Neo.Service, Neo.EventLog, , %Neo, EventLog.Name%
+
+[NeoAdapter.Ndi]
+HKR, , NetworkAddress, 0, %DefaultAddress%
+HKR, Ndi, DeviceID, , "NeoAdapter_$TAG_INSTANCE_NAME$"
+HKR, , DevLoader, , ndis
+HKR, , DeviceVxDs, , $TAG_SYS_NAME$
+HKR, NDIS, LogDriverName, , "Neo_$TAG_INSTANCE_NAME$"
+HKR, NDIS, MajorNdisVersion, 1, 5
+HKR, NDIS, MinorNdisVersion, 1, 0
+HKR, Ndi\Interfaces, DefUpper, , "ndis5"
+HKR, Ndi\Interfaces, UpperRange, , "ndis5"
+HKR, Ndi\Interfaces, LowerRange, , "ethernet"
+HKR, Ndi\Interfaces, DefLower, , "ethernet"
+HKR, Ndi\Install, ndis5, , "Neo.CopyFiles.Sys"
+HKR, Ndi\Params\NetworkAddress, ParamDesc, 0, %NetworkAddress%
+HKR, Ndi\Params\NetworkAddress, type, 0, "edit"
+HKR, Ndi\Params\NetworkAddress, LimitText, 0, "12"
+HKR, Ndi\Params\NetworkAddress, UpperCase, 0, "1"
+HKR, Ndi\Params\NetworkAddress, default, 0, %DefaultAddress%
+HKR, Ndi\Params\NetworkAddress, optional, 0, "0"
+HKR, Ndi\Params\MaxSpeed, ParamDesc, 0, %MaxSpeed%
+HKR, Ndi\Params\MaxSpeed, type, 0, "int"
+HKR, Ndi\Params\MaxSpeed, default, 0, "100"
+HKR, Ndi\Params\MaxSpeed, min, 0, "0"
+HKR, Ndi\Params\MaxSpeed, max, 0, "2000"
+HKR, Ndi\Params\MaxSpeed, step, 0, "1"
+HKR, Ndi\Params\MaxSpeed, Base, 0, "10"
+HKR, Ndi\Params\KeepLink, ParamDesc, 0, %KeepLink%
+HKR, Ndi\Params\KeepLink, type, 0, "enum"
+HKR, Ndi\Params\KeepLink\enum, "1", 0, %On%
+HKR, Ndi\Params\KeepLink\enum, "0", 0, %Off%
+HKR, Ndi\Params\KeepLink, default, 0, "0"
+
+
+[Neo.Service]
+DisplayName					= %Neo.Service.DispName%
+Description					= %Neo.Service.Desc%
+ServiceType					= 1
+StartType					= 3
+ErrorControl				= 1
+ServiceBinary				= %12%\$TAG_SYS_NAME$
+LoadOrderGroup				= NDIS
+
+[Neo.Reg]
+HKR, Ndi, Service, 0, Neo.Service.Name
+HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"
+HKR, Ndi\Interfaces, UpperRange, 0, "ndis5"
+
+[Neo.EventLog]
+HKR, , EventMessageFile, 0x00020000, "%11%\IoLogMsg.dll;%12%\$TAG_SYS_NAME$"
+HKR, , TypesSupported, 0x00010001, 7
+
+[Strings]
+CompanyName					= "SoftEther Corporation"
+DiskDescription				= "VPN Client Device Driver Install Disk"
+Neo.Service.Name			= "Neo_$TAG_INSTANCE_NAME$"
+Neo.Service.DispName		= "VPN Client Device Driver - $TAG_INSTANCE_NAME$"
+Neo.Service.Desc			= "VPN Client Adapter - $TAG_INSTANCE_NAME$"
+NeoAdapter.DeviceDesc		= "VPN Client Adapter - $TAG_INSTANCE_NAME$"
+Neo.EventLog.Name			= "Neo"
+NetworkAddress				= "MAC Address"
+DefaultAddress				= "$TAG_MAC_ADDRESS$"
+MaxSpeed					= "Indicate Speed (Mbps)"
+KeepLink					= "Keep Link"
+On							= "On"
+Off							= "Off"
+
+
+; Auto Generated 20150530_023418.140
+

BIN
src/bin/hamcore/DriverPackages/Neo6/x64/Neo6_x64.sys


+ 114 - 0
src/bin/hamcore/DriverPackages/Neo6/x86/Neo6_x86.inf

@@ -0,0 +1,114 @@
+; VPN Client Device Driver for Windows 2000 and Greater
+; 
+; Copyright (c) SoftEther Corporation. All Rights Reserved.
+; http://www.softether.co.jp/
+; 
+; BUILD 9558
+
+[Version]
+Signature					= "$Windows NT$"
+Class						= Net
+ClassGUID					= {4D36E972-E325-11CE-BFC1-08002BE10318}
+Provider					= %CompanyName%
+DriverVer					= 05/29/2015, 4.16.0.9558
+;CatalogFile.NT				= $CATALOG_FILENAME$
+
+[Manufacturer]
+%CompanyName% 				= SoftEther
+
+[SourceDisksNames]
+1=%DiskDescription%, "", , 
+
+[SourceDisksFiles]
+$TAG_SYS_NAME$	= 1
+
+[DestinationDirs]
+DefaultDestDir				= 12
+Neo.CopyFiles.Sys			= 12
+
+[Neo.CopyFiles.Sys]
+$TAG_SYS_NAME$, , , 2
+
+[SoftEther]
+%NeoAdapter.DeviceDesc%	= NeoAdapter.Install, NeoAdapter_$TAG_INSTANCE_NAME$
+
+[NeoAdapter.Install]
+Characteristics				= 0x1
+AddReg						= Neo.Reg, NeoAdapter.Ndi
+CopyFiles					= Neo.CopyFiles.Sys
+*IfType						= 6
+*MediaType					= 0
+*PhysicalMediaType			= 0
+
+[NeoAdapter.Install.Services]
+AddService					= %Neo.Service.Name%, 2, Neo.Service, Neo.EventLog, , %Neo, EventLog.Name%
+
+[NeoAdapter.Ndi]
+HKR, , NetworkAddress, 0, %DefaultAddress%
+HKR, Ndi, DeviceID, , "NeoAdapter_$TAG_INSTANCE_NAME$"
+HKR, , DevLoader, , ndis
+HKR, , DeviceVxDs, , $TAG_SYS_NAME$
+HKR, NDIS, LogDriverName, , "Neo_$TAG_INSTANCE_NAME$"
+HKR, NDIS, MajorNdisVersion, 1, 5
+HKR, NDIS, MinorNdisVersion, 1, 0
+HKR, Ndi\Interfaces, DefUpper, , "ndis5"
+HKR, Ndi\Interfaces, UpperRange, , "ndis5"
+HKR, Ndi\Interfaces, LowerRange, , "ethernet"
+HKR, Ndi\Interfaces, DefLower, , "ethernet"
+HKR, Ndi\Install, ndis5, , "Neo.CopyFiles.Sys"
+HKR, Ndi\Params\NetworkAddress, ParamDesc, 0, %NetworkAddress%
+HKR, Ndi\Params\NetworkAddress, type, 0, "edit"
+HKR, Ndi\Params\NetworkAddress, LimitText, 0, "12"
+HKR, Ndi\Params\NetworkAddress, UpperCase, 0, "1"
+HKR, Ndi\Params\NetworkAddress, default, 0, %DefaultAddress%
+HKR, Ndi\Params\NetworkAddress, optional, 0, "0"
+HKR, Ndi\Params\MaxSpeed, ParamDesc, 0, %MaxSpeed%
+HKR, Ndi\Params\MaxSpeed, type, 0, "int"
+HKR, Ndi\Params\MaxSpeed, default, 0, "100"
+HKR, Ndi\Params\MaxSpeed, min, 0, "0"
+HKR, Ndi\Params\MaxSpeed, max, 0, "2000"
+HKR, Ndi\Params\MaxSpeed, step, 0, "1"
+HKR, Ndi\Params\MaxSpeed, Base, 0, "10"
+HKR, Ndi\Params\KeepLink, ParamDesc, 0, %KeepLink%
+HKR, Ndi\Params\KeepLink, type, 0, "enum"
+HKR, Ndi\Params\KeepLink\enum, "1", 0, %On%
+HKR, Ndi\Params\KeepLink\enum, "0", 0, %Off%
+HKR, Ndi\Params\KeepLink, default, 0, "0"
+
+
+[Neo.Service]
+DisplayName					= %Neo.Service.DispName%
+Description					= %Neo.Service.Desc%
+ServiceType					= 1
+StartType					= 3
+ErrorControl				= 1
+ServiceBinary				= %12%\$TAG_SYS_NAME$
+LoadOrderGroup				= NDIS
+
+[Neo.Reg]
+HKR, Ndi, Service, 0, Neo.Service.Name
+HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"
+HKR, Ndi\Interfaces, UpperRange, 0, "ndis5"
+
+[Neo.EventLog]
+HKR, , EventMessageFile, 0x00020000, "%11%\IoLogMsg.dll;%12%\Neo_$TAG_INSTANCE_NAME$.sys"
+HKR, , TypesSupported, 0x00010001, 7
+
+[Strings]
+CompanyName					= "SoftEther Corporation"
+DiskDescription				= "VPN Client Device Driver Install Disk"
+Neo.Service.Name			= "Neo_$TAG_INSTANCE_NAME$"
+Neo.Service.DispName		= "VPN Client Device Driver - $TAG_INSTANCE_NAME$"
+Neo.Service.Desc			= "VPN Client Adapter - $TAG_INSTANCE_NAME$"
+NeoAdapter.DeviceDesc		= "VPN Client Adapter - $TAG_INSTANCE_NAME$"
+Neo.EventLog.Name			= "Neo"
+NetworkAddress				= "MAC Address"
+DefaultAddress				= "$TAG_MAC_ADDRESS$"
+MaxSpeed					= "Indicate Speed (Mbps)"
+KeepLink					= "Keep Link"
+On							= "On"
+Off							= "Off"
+
+
+; Auto Generated 20150530_023418.137
+

BIN
src/bin/hamcore/DriverPackages/Neo6/x86/Neo6_x86.sys


BIN
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN.cat


+ 114 - 0
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN.inf

@@ -0,0 +1,114 @@
+; VPN Client Device Driver for Windows 2000 and Greater
+; 
+; Copyright (c) SoftEther Corporation. All Rights Reserved.
+; http://www.softether.co.jp/
+; 
+; BUILD 9558
+
+[Version]
+Signature					= "$Windows NT$"
+Class						= Net
+ClassGUID					= {4D36E972-E325-11CE-BFC1-08002BE10318}
+Provider					= %CompanyName%
+DriverVer					= 05/29/2015, 4.16.0.9558
+CatalogFile.NT				= Neo6_x64_VPN.cat
+
+[Manufacturer]
+%CompanyName% 				= SoftEther, NTamd64
+
+[SourceDisksNames]
+1=%DiskDescription%, "", , 
+
+[SourceDisksFiles]
+Neo6_x64_VPN.sys	= 1
+
+[DestinationDirs]
+DefaultDestDir				= 12
+Neo.CopyFiles.Sys			= 12
+
+[Neo.CopyFiles.Sys]
+Neo6_x64_VPN.sys, , , 2
+
+[SoftEther.NTamd64]
+%NeoAdapter.DeviceDesc%	= NeoAdapter.Install, NeoAdapter_VPN
+
+[NeoAdapter.Install]
+Characteristics				= 0x1
+AddReg						= Neo.Reg, NeoAdapter.Ndi
+CopyFiles					= Neo.CopyFiles.Sys
+*IfType						= 6
+*MediaType					= 0
+*PhysicalMediaType			= 0
+
+[NeoAdapter.Install.Services]
+AddService					= %Neo.Service.Name%, 2, Neo.Service, Neo.EventLog, , %Neo, EventLog.Name%
+
+[NeoAdapter.Ndi]
+HKR, , NetworkAddress, 0, %DefaultAddress%
+HKR, Ndi, DeviceID, , "NeoAdapter_VPN"
+HKR, , DevLoader, , ndis
+HKR, , DeviceVxDs, , Neo6_x64_VPN.sys
+HKR, NDIS, LogDriverName, , "Neo_VPN"
+HKR, NDIS, MajorNdisVersion, 1, 5
+HKR, NDIS, MinorNdisVersion, 1, 0
+HKR, Ndi\Interfaces, DefUpper, , "ndis5"
+HKR, Ndi\Interfaces, UpperRange, , "ndis5"
+HKR, Ndi\Interfaces, LowerRange, , "ethernet"
+HKR, Ndi\Interfaces, DefLower, , "ethernet"
+HKR, Ndi\Install, ndis5, , "Neo.CopyFiles.Sys"
+HKR, Ndi\Params\NetworkAddress, ParamDesc, 0, %NetworkAddress%
+HKR, Ndi\Params\NetworkAddress, type, 0, "edit"
+HKR, Ndi\Params\NetworkAddress, LimitText, 0, "12"
+HKR, Ndi\Params\NetworkAddress, UpperCase, 0, "1"
+HKR, Ndi\Params\NetworkAddress, default, 0, %DefaultAddress%
+HKR, Ndi\Params\NetworkAddress, optional, 0, "0"
+HKR, Ndi\Params\MaxSpeed, ParamDesc, 0, %MaxSpeed%
+HKR, Ndi\Params\MaxSpeed, type, 0, "int"
+HKR, Ndi\Params\MaxSpeed, default, 0, "100"
+HKR, Ndi\Params\MaxSpeed, min, 0, "0"
+HKR, Ndi\Params\MaxSpeed, max, 0, "2000"
+HKR, Ndi\Params\MaxSpeed, step, 0, "1"
+HKR, Ndi\Params\MaxSpeed, Base, 0, "10"
+HKR, Ndi\Params\KeepLink, ParamDesc, 0, %KeepLink%
+HKR, Ndi\Params\KeepLink, type, 0, "enum"
+HKR, Ndi\Params\KeepLink\enum, "1", 0, %On%
+HKR, Ndi\Params\KeepLink\enum, "0", 0, %Off%
+HKR, Ndi\Params\KeepLink, default, 0, "0"
+
+
+[Neo.Service]
+DisplayName					= %Neo.Service.DispName%
+Description					= %Neo.Service.Desc%
+ServiceType					= 1
+StartType					= 3
+ErrorControl				= 1
+ServiceBinary				= %12%\Neo6_x64_VPN.sys
+LoadOrderGroup				= NDIS
+
+[Neo.Reg]
+HKR, Ndi, Service, 0, Neo.Service.Name
+HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"
+HKR, Ndi\Interfaces, UpperRange, 0, "ndis5"
+
+[Neo.EventLog]
+HKR, , EventMessageFile, 0x00020000, "%11%\IoLogMsg.dll;%12%\Neo6_x64_VPN.sys"
+HKR, , TypesSupported, 0x00010001, 7
+
+[Strings]
+CompanyName					= "SoftEther Corporation"
+DiskDescription				= "VPN Client Device Driver Install Disk"
+Neo.Service.Name			= "Neo_VPN"
+Neo.Service.DispName		= "VPN Client Device Driver - VPN"
+Neo.Service.Desc			= "VPN Client Adapter - VPN"
+NeoAdapter.DeviceDesc		= "VPN Client Adapter - VPN"
+Neo.EventLog.Name			= "Neo"
+NetworkAddress				= "MAC Address"
+DefaultAddress				= "000001000001"
+MaxSpeed					= "Indicate Speed (Mbps)"
+KeepLink					= "Keep Link"
+On							= "On"
+Off							= "Off"
+
+
+; Auto Generated 20150530_023435.313
+

BIN
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN.sys


BIN
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN10.cat


+ 114 - 0
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN10.inf

@@ -0,0 +1,114 @@
+; VPN Client Device Driver for Windows 2000 and Greater
+; 
+; Copyright (c) SoftEther Corporation. All Rights Reserved.
+; http://www.softether.co.jp/
+; 
+; BUILD 9558
+
+[Version]
+Signature					= "$Windows NT$"
+Class						= Net
+ClassGUID					= {4D36E972-E325-11CE-BFC1-08002BE10318}
+Provider					= %CompanyName%
+DriverVer					= 05/29/2015, 4.16.0.9558
+CatalogFile.NT				= Neo6_x64_VPN10.cat
+
+[Manufacturer]
+%CompanyName% 				= SoftEther, NTamd64
+
+[SourceDisksNames]
+1=%DiskDescription%, "", , 
+
+[SourceDisksFiles]
+Neo6_x64_VPN10.sys	= 1
+
+[DestinationDirs]
+DefaultDestDir				= 12
+Neo.CopyFiles.Sys			= 12
+
+[Neo.CopyFiles.Sys]
+Neo6_x64_VPN10.sys, , , 2
+
+[SoftEther.NTamd64]
+%NeoAdapter.DeviceDesc%	= NeoAdapter.Install, NeoAdapter_VPN10
+
+[NeoAdapter.Install]
+Characteristics				= 0x1
+AddReg						= Neo.Reg, NeoAdapter.Ndi
+CopyFiles					= Neo.CopyFiles.Sys
+*IfType						= 6
+*MediaType					= 0
+*PhysicalMediaType			= 0
+
+[NeoAdapter.Install.Services]
+AddService					= %Neo.Service.Name%, 2, Neo.Service, Neo.EventLog, , %Neo, EventLog.Name%
+
+[NeoAdapter.Ndi]
+HKR, , NetworkAddress, 0, %DefaultAddress%
+HKR, Ndi, DeviceID, , "NeoAdapter_VPN10"
+HKR, , DevLoader, , ndis
+HKR, , DeviceVxDs, , Neo6_x64_VPN10.sys
+HKR, NDIS, LogDriverName, , "Neo_VPN10"
+HKR, NDIS, MajorNdisVersion, 1, 5
+HKR, NDIS, MinorNdisVersion, 1, 0
+HKR, Ndi\Interfaces, DefUpper, , "ndis5"
+HKR, Ndi\Interfaces, UpperRange, , "ndis5"
+HKR, Ndi\Interfaces, LowerRange, , "ethernet"
+HKR, Ndi\Interfaces, DefLower, , "ethernet"
+HKR, Ndi\Install, ndis5, , "Neo.CopyFiles.Sys"
+HKR, Ndi\Params\NetworkAddress, ParamDesc, 0, %NetworkAddress%
+HKR, Ndi\Params\NetworkAddress, type, 0, "edit"
+HKR, Ndi\Params\NetworkAddress, LimitText, 0, "12"
+HKR, Ndi\Params\NetworkAddress, UpperCase, 0, "1"
+HKR, Ndi\Params\NetworkAddress, default, 0, %DefaultAddress%
+HKR, Ndi\Params\NetworkAddress, optional, 0, "0"
+HKR, Ndi\Params\MaxSpeed, ParamDesc, 0, %MaxSpeed%
+HKR, Ndi\Params\MaxSpeed, type, 0, "int"
+HKR, Ndi\Params\MaxSpeed, default, 0, "100"
+HKR, Ndi\Params\MaxSpeed, min, 0, "0"
+HKR, Ndi\Params\MaxSpeed, max, 0, "2000"
+HKR, Ndi\Params\MaxSpeed, step, 0, "1"
+HKR, Ndi\Params\MaxSpeed, Base, 0, "10"
+HKR, Ndi\Params\KeepLink, ParamDesc, 0, %KeepLink%
+HKR, Ndi\Params\KeepLink, type, 0, "enum"
+HKR, Ndi\Params\KeepLink\enum, "1", 0, %On%
+HKR, Ndi\Params\KeepLink\enum, "0", 0, %Off%
+HKR, Ndi\Params\KeepLink, default, 0, "0"
+
+
+[Neo.Service]
+DisplayName					= %Neo.Service.DispName%
+Description					= %Neo.Service.Desc%
+ServiceType					= 1
+StartType					= 3
+ErrorControl				= 1
+ServiceBinary				= %12%\Neo6_x64_VPN10.sys
+LoadOrderGroup				= NDIS
+
+[Neo.Reg]
+HKR, Ndi, Service, 0, Neo.Service.Name
+HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"
+HKR, Ndi\Interfaces, UpperRange, 0, "ndis5"
+
+[Neo.EventLog]
+HKR, , EventMessageFile, 0x00020000, "%11%\IoLogMsg.dll;%12%\Neo6_x64_VPN10.sys"
+HKR, , TypesSupported, 0x00010001, 7
+
+[Strings]
+CompanyName					= "SoftEther Corporation"
+DiskDescription				= "VPN Client Device Driver Install Disk"
+Neo.Service.Name			= "Neo_VPN10"
+Neo.Service.DispName		= "VPN Client Device Driver - VPN10"
+Neo.Service.Desc			= "VPN Client Adapter - VPN10"
+NeoAdapter.DeviceDesc		= "VPN Client Adapter - VPN10"
+Neo.EventLog.Name			= "Neo"
+NetworkAddress				= "MAC Address"
+DefaultAddress				= "000001000001"
+MaxSpeed					= "Indicate Speed (Mbps)"
+KeepLink					= "Keep Link"
+On							= "On"
+Off							= "Off"
+
+
+; Auto Generated 20150530_023436.178
+

BIN
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN10.sys


BIN
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN100.cat


+ 114 - 0
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN100.inf

@@ -0,0 +1,114 @@
+; VPN Client Device Driver for Windows 2000 and Greater
+; 
+; Copyright (c) SoftEther Corporation. All Rights Reserved.
+; http://www.softether.co.jp/
+; 
+; BUILD 9558
+
+[Version]
+Signature					= "$Windows NT$"
+Class						= Net
+ClassGUID					= {4D36E972-E325-11CE-BFC1-08002BE10318}
+Provider					= %CompanyName%
+DriverVer					= 05/29/2015, 4.16.0.9558
+CatalogFile.NT				= Neo6_x64_VPN100.cat
+
+[Manufacturer]
+%CompanyName% 				= SoftEther, NTamd64
+
+[SourceDisksNames]
+1=%DiskDescription%, "", , 
+
+[SourceDisksFiles]
+Neo6_x64_VPN100.sys	= 1
+
+[DestinationDirs]
+DefaultDestDir				= 12
+Neo.CopyFiles.Sys			= 12
+
+[Neo.CopyFiles.Sys]
+Neo6_x64_VPN100.sys, , , 2
+
+[SoftEther.NTamd64]
+%NeoAdapter.DeviceDesc%	= NeoAdapter.Install, NeoAdapter_VPN100
+
+[NeoAdapter.Install]
+Characteristics				= 0x1
+AddReg						= Neo.Reg, NeoAdapter.Ndi
+CopyFiles					= Neo.CopyFiles.Sys
+*IfType						= 6
+*MediaType					= 0
+*PhysicalMediaType			= 0
+
+[NeoAdapter.Install.Services]
+AddService					= %Neo.Service.Name%, 2, Neo.Service, Neo.EventLog, , %Neo, EventLog.Name%
+
+[NeoAdapter.Ndi]
+HKR, , NetworkAddress, 0, %DefaultAddress%
+HKR, Ndi, DeviceID, , "NeoAdapter_VPN100"
+HKR, , DevLoader, , ndis
+HKR, , DeviceVxDs, , Neo6_x64_VPN100.sys
+HKR, NDIS, LogDriverName, , "Neo_VPN100"
+HKR, NDIS, MajorNdisVersion, 1, 5
+HKR, NDIS, MinorNdisVersion, 1, 0
+HKR, Ndi\Interfaces, DefUpper, , "ndis5"
+HKR, Ndi\Interfaces, UpperRange, , "ndis5"
+HKR, Ndi\Interfaces, LowerRange, , "ethernet"
+HKR, Ndi\Interfaces, DefLower, , "ethernet"
+HKR, Ndi\Install, ndis5, , "Neo.CopyFiles.Sys"
+HKR, Ndi\Params\NetworkAddress, ParamDesc, 0, %NetworkAddress%
+HKR, Ndi\Params\NetworkAddress, type, 0, "edit"
+HKR, Ndi\Params\NetworkAddress, LimitText, 0, "12"
+HKR, Ndi\Params\NetworkAddress, UpperCase, 0, "1"
+HKR, Ndi\Params\NetworkAddress, default, 0, %DefaultAddress%
+HKR, Ndi\Params\NetworkAddress, optional, 0, "0"
+HKR, Ndi\Params\MaxSpeed, ParamDesc, 0, %MaxSpeed%
+HKR, Ndi\Params\MaxSpeed, type, 0, "int"
+HKR, Ndi\Params\MaxSpeed, default, 0, "100"
+HKR, Ndi\Params\MaxSpeed, min, 0, "0"
+HKR, Ndi\Params\MaxSpeed, max, 0, "2000"
+HKR, Ndi\Params\MaxSpeed, step, 0, "1"
+HKR, Ndi\Params\MaxSpeed, Base, 0, "10"
+HKR, Ndi\Params\KeepLink, ParamDesc, 0, %KeepLink%
+HKR, Ndi\Params\KeepLink, type, 0, "enum"
+HKR, Ndi\Params\KeepLink\enum, "1", 0, %On%
+HKR, Ndi\Params\KeepLink\enum, "0", 0, %Off%
+HKR, Ndi\Params\KeepLink, default, 0, "0"
+
+
+[Neo.Service]
+DisplayName					= %Neo.Service.DispName%
+Description					= %Neo.Service.Desc%
+ServiceType					= 1
+StartType					= 3
+ErrorControl				= 1
+ServiceBinary				= %12%\Neo6_x64_VPN100.sys
+LoadOrderGroup				= NDIS
+
+[Neo.Reg]
+HKR, Ndi, Service, 0, Neo.Service.Name
+HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"
+HKR, Ndi\Interfaces, UpperRange, 0, "ndis5"
+
+[Neo.EventLog]
+HKR, , EventMessageFile, 0x00020000, "%11%\IoLogMsg.dll;%12%\Neo6_x64_VPN100.sys"
+HKR, , TypesSupported, 0x00010001, 7
+
+[Strings]
+CompanyName					= "SoftEther Corporation"
+DiskDescription				= "VPN Client Device Driver Install Disk"
+Neo.Service.Name			= "Neo_VPN100"
+Neo.Service.DispName		= "VPN Client Device Driver - VPN100"
+Neo.Service.Desc			= "VPN Client Adapter - VPN100"
+NeoAdapter.DeviceDesc		= "VPN Client Adapter - VPN100"
+Neo.EventLog.Name			= "Neo"
+NetworkAddress				= "MAC Address"
+DefaultAddress				= "000001000001"
+MaxSpeed					= "Indicate Speed (Mbps)"
+KeepLink					= "Keep Link"
+On							= "On"
+Off							= "Off"
+
+
+; Auto Generated 20150530_023444.795
+

BIN
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN100.sys


BIN
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN101.cat


+ 114 - 0
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN101.inf

@@ -0,0 +1,114 @@
+; VPN Client Device Driver for Windows 2000 and Greater
+; 
+; Copyright (c) SoftEther Corporation. All Rights Reserved.
+; http://www.softether.co.jp/
+; 
+; BUILD 9558
+
+[Version]
+Signature					= "$Windows NT$"
+Class						= Net
+ClassGUID					= {4D36E972-E325-11CE-BFC1-08002BE10318}
+Provider					= %CompanyName%
+DriverVer					= 05/29/2015, 4.16.0.9558
+CatalogFile.NT				= Neo6_x64_VPN101.cat
+
+[Manufacturer]
+%CompanyName% 				= SoftEther, NTamd64
+
+[SourceDisksNames]
+1=%DiskDescription%, "", , 
+
+[SourceDisksFiles]
+Neo6_x64_VPN101.sys	= 1
+
+[DestinationDirs]
+DefaultDestDir				= 12
+Neo.CopyFiles.Sys			= 12
+
+[Neo.CopyFiles.Sys]
+Neo6_x64_VPN101.sys, , , 2
+
+[SoftEther.NTamd64]
+%NeoAdapter.DeviceDesc%	= NeoAdapter.Install, NeoAdapter_VPN101
+
+[NeoAdapter.Install]
+Characteristics				= 0x1
+AddReg						= Neo.Reg, NeoAdapter.Ndi
+CopyFiles					= Neo.CopyFiles.Sys
+*IfType						= 6
+*MediaType					= 0
+*PhysicalMediaType			= 0
+
+[NeoAdapter.Install.Services]
+AddService					= %Neo.Service.Name%, 2, Neo.Service, Neo.EventLog, , %Neo, EventLog.Name%
+
+[NeoAdapter.Ndi]
+HKR, , NetworkAddress, 0, %DefaultAddress%
+HKR, Ndi, DeviceID, , "NeoAdapter_VPN101"
+HKR, , DevLoader, , ndis
+HKR, , DeviceVxDs, , Neo6_x64_VPN101.sys
+HKR, NDIS, LogDriverName, , "Neo_VPN101"
+HKR, NDIS, MajorNdisVersion, 1, 5
+HKR, NDIS, MinorNdisVersion, 1, 0
+HKR, Ndi\Interfaces, DefUpper, , "ndis5"
+HKR, Ndi\Interfaces, UpperRange, , "ndis5"
+HKR, Ndi\Interfaces, LowerRange, , "ethernet"
+HKR, Ndi\Interfaces, DefLower, , "ethernet"
+HKR, Ndi\Install, ndis5, , "Neo.CopyFiles.Sys"
+HKR, Ndi\Params\NetworkAddress, ParamDesc, 0, %NetworkAddress%
+HKR, Ndi\Params\NetworkAddress, type, 0, "edit"
+HKR, Ndi\Params\NetworkAddress, LimitText, 0, "12"
+HKR, Ndi\Params\NetworkAddress, UpperCase, 0, "1"
+HKR, Ndi\Params\NetworkAddress, default, 0, %DefaultAddress%
+HKR, Ndi\Params\NetworkAddress, optional, 0, "0"
+HKR, Ndi\Params\MaxSpeed, ParamDesc, 0, %MaxSpeed%
+HKR, Ndi\Params\MaxSpeed, type, 0, "int"
+HKR, Ndi\Params\MaxSpeed, default, 0, "100"
+HKR, Ndi\Params\MaxSpeed, min, 0, "0"
+HKR, Ndi\Params\MaxSpeed, max, 0, "2000"
+HKR, Ndi\Params\MaxSpeed, step, 0, "1"
+HKR, Ndi\Params\MaxSpeed, Base, 0, "10"
+HKR, Ndi\Params\KeepLink, ParamDesc, 0, %KeepLink%
+HKR, Ndi\Params\KeepLink, type, 0, "enum"
+HKR, Ndi\Params\KeepLink\enum, "1", 0, %On%
+HKR, Ndi\Params\KeepLink\enum, "0", 0, %Off%
+HKR, Ndi\Params\KeepLink, default, 0, "0"
+
+
+[Neo.Service]
+DisplayName					= %Neo.Service.DispName%
+Description					= %Neo.Service.Desc%
+ServiceType					= 1
+StartType					= 3
+ErrorControl				= 1
+ServiceBinary				= %12%\Neo6_x64_VPN101.sys
+LoadOrderGroup				= NDIS
+
+[Neo.Reg]
+HKR, Ndi, Service, 0, Neo.Service.Name
+HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"
+HKR, Ndi\Interfaces, UpperRange, 0, "ndis5"
+
+[Neo.EventLog]
+HKR, , EventMessageFile, 0x00020000, "%11%\IoLogMsg.dll;%12%\Neo6_x64_VPN101.sys"
+HKR, , TypesSupported, 0x00010001, 7
+
+[Strings]
+CompanyName					= "SoftEther Corporation"
+DiskDescription				= "VPN Client Device Driver Install Disk"
+Neo.Service.Name			= "Neo_VPN101"
+Neo.Service.DispName		= "VPN Client Device Driver - VPN101"
+Neo.Service.Desc			= "VPN Client Adapter - VPN101"
+NeoAdapter.DeviceDesc		= "VPN Client Adapter - VPN101"
+Neo.EventLog.Name			= "Neo"
+NetworkAddress				= "MAC Address"
+DefaultAddress				= "000001000001"
+MaxSpeed					= "Indicate Speed (Mbps)"
+KeepLink					= "Keep Link"
+On							= "On"
+Off							= "Off"
+
+
+; Auto Generated 20150530_023444.890
+

BIN
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN101.sys


BIN
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN102.cat


+ 114 - 0
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN102.inf

@@ -0,0 +1,114 @@
+; VPN Client Device Driver for Windows 2000 and Greater
+; 
+; Copyright (c) SoftEther Corporation. All Rights Reserved.
+; http://www.softether.co.jp/
+; 
+; BUILD 9558
+
+[Version]
+Signature					= "$Windows NT$"
+Class						= Net
+ClassGUID					= {4D36E972-E325-11CE-BFC1-08002BE10318}
+Provider					= %CompanyName%
+DriverVer					= 05/29/2015, 4.16.0.9558
+CatalogFile.NT				= Neo6_x64_VPN102.cat
+
+[Manufacturer]
+%CompanyName% 				= SoftEther, NTamd64
+
+[SourceDisksNames]
+1=%DiskDescription%, "", , 
+
+[SourceDisksFiles]
+Neo6_x64_VPN102.sys	= 1
+
+[DestinationDirs]
+DefaultDestDir				= 12
+Neo.CopyFiles.Sys			= 12
+
+[Neo.CopyFiles.Sys]
+Neo6_x64_VPN102.sys, , , 2
+
+[SoftEther.NTamd64]
+%NeoAdapter.DeviceDesc%	= NeoAdapter.Install, NeoAdapter_VPN102
+
+[NeoAdapter.Install]
+Characteristics				= 0x1
+AddReg						= Neo.Reg, NeoAdapter.Ndi
+CopyFiles					= Neo.CopyFiles.Sys
+*IfType						= 6
+*MediaType					= 0
+*PhysicalMediaType			= 0
+
+[NeoAdapter.Install.Services]
+AddService					= %Neo.Service.Name%, 2, Neo.Service, Neo.EventLog, , %Neo, EventLog.Name%
+
+[NeoAdapter.Ndi]
+HKR, , NetworkAddress, 0, %DefaultAddress%
+HKR, Ndi, DeviceID, , "NeoAdapter_VPN102"
+HKR, , DevLoader, , ndis
+HKR, , DeviceVxDs, , Neo6_x64_VPN102.sys
+HKR, NDIS, LogDriverName, , "Neo_VPN102"
+HKR, NDIS, MajorNdisVersion, 1, 5
+HKR, NDIS, MinorNdisVersion, 1, 0
+HKR, Ndi\Interfaces, DefUpper, , "ndis5"
+HKR, Ndi\Interfaces, UpperRange, , "ndis5"
+HKR, Ndi\Interfaces, LowerRange, , "ethernet"
+HKR, Ndi\Interfaces, DefLower, , "ethernet"
+HKR, Ndi\Install, ndis5, , "Neo.CopyFiles.Sys"
+HKR, Ndi\Params\NetworkAddress, ParamDesc, 0, %NetworkAddress%
+HKR, Ndi\Params\NetworkAddress, type, 0, "edit"
+HKR, Ndi\Params\NetworkAddress, LimitText, 0, "12"
+HKR, Ndi\Params\NetworkAddress, UpperCase, 0, "1"
+HKR, Ndi\Params\NetworkAddress, default, 0, %DefaultAddress%
+HKR, Ndi\Params\NetworkAddress, optional, 0, "0"
+HKR, Ndi\Params\MaxSpeed, ParamDesc, 0, %MaxSpeed%
+HKR, Ndi\Params\MaxSpeed, type, 0, "int"
+HKR, Ndi\Params\MaxSpeed, default, 0, "100"
+HKR, Ndi\Params\MaxSpeed, min, 0, "0"
+HKR, Ndi\Params\MaxSpeed, max, 0, "2000"
+HKR, Ndi\Params\MaxSpeed, step, 0, "1"
+HKR, Ndi\Params\MaxSpeed, Base, 0, "10"
+HKR, Ndi\Params\KeepLink, ParamDesc, 0, %KeepLink%
+HKR, Ndi\Params\KeepLink, type, 0, "enum"
+HKR, Ndi\Params\KeepLink\enum, "1", 0, %On%
+HKR, Ndi\Params\KeepLink\enum, "0", 0, %Off%
+HKR, Ndi\Params\KeepLink, default, 0, "0"
+
+
+[Neo.Service]
+DisplayName					= %Neo.Service.DispName%
+Description					= %Neo.Service.Desc%
+ServiceType					= 1
+StartType					= 3
+ErrorControl				= 1
+ServiceBinary				= %12%\Neo6_x64_VPN102.sys
+LoadOrderGroup				= NDIS
+
+[Neo.Reg]
+HKR, Ndi, Service, 0, Neo.Service.Name
+HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"
+HKR, Ndi\Interfaces, UpperRange, 0, "ndis5"
+
+[Neo.EventLog]
+HKR, , EventMessageFile, 0x00020000, "%11%\IoLogMsg.dll;%12%\Neo6_x64_VPN102.sys"
+HKR, , TypesSupported, 0x00010001, 7
+
+[Strings]
+CompanyName					= "SoftEther Corporation"
+DiskDescription				= "VPN Client Device Driver Install Disk"
+Neo.Service.Name			= "Neo_VPN102"
+Neo.Service.DispName		= "VPN Client Device Driver - VPN102"
+Neo.Service.Desc			= "VPN Client Adapter - VPN102"
+NeoAdapter.DeviceDesc		= "VPN Client Adapter - VPN102"
+Neo.EventLog.Name			= "Neo"
+NetworkAddress				= "MAC Address"
+DefaultAddress				= "000001000001"
+MaxSpeed					= "Indicate Speed (Mbps)"
+KeepLink					= "Keep Link"
+On							= "On"
+Off							= "Off"
+
+
+; Auto Generated 20150530_023444.985
+

BIN
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN102.sys


BIN
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN103.cat


+ 114 - 0
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN103.inf

@@ -0,0 +1,114 @@
+; VPN Client Device Driver for Windows 2000 and Greater
+; 
+; Copyright (c) SoftEther Corporation. All Rights Reserved.
+; http://www.softether.co.jp/
+; 
+; BUILD 9558
+
+[Version]
+Signature					= "$Windows NT$"
+Class						= Net
+ClassGUID					= {4D36E972-E325-11CE-BFC1-08002BE10318}
+Provider					= %CompanyName%
+DriverVer					= 05/29/2015, 4.16.0.9558
+CatalogFile.NT				= Neo6_x64_VPN103.cat
+
+[Manufacturer]
+%CompanyName% 				= SoftEther, NTamd64
+
+[SourceDisksNames]
+1=%DiskDescription%, "", , 
+
+[SourceDisksFiles]
+Neo6_x64_VPN103.sys	= 1
+
+[DestinationDirs]
+DefaultDestDir				= 12
+Neo.CopyFiles.Sys			= 12
+
+[Neo.CopyFiles.Sys]
+Neo6_x64_VPN103.sys, , , 2
+
+[SoftEther.NTamd64]
+%NeoAdapter.DeviceDesc%	= NeoAdapter.Install, NeoAdapter_VPN103
+
+[NeoAdapter.Install]
+Characteristics				= 0x1
+AddReg						= Neo.Reg, NeoAdapter.Ndi
+CopyFiles					= Neo.CopyFiles.Sys
+*IfType						= 6
+*MediaType					= 0
+*PhysicalMediaType			= 0
+
+[NeoAdapter.Install.Services]
+AddService					= %Neo.Service.Name%, 2, Neo.Service, Neo.EventLog, , %Neo, EventLog.Name%
+
+[NeoAdapter.Ndi]
+HKR, , NetworkAddress, 0, %DefaultAddress%
+HKR, Ndi, DeviceID, , "NeoAdapter_VPN103"
+HKR, , DevLoader, , ndis
+HKR, , DeviceVxDs, , Neo6_x64_VPN103.sys
+HKR, NDIS, LogDriverName, , "Neo_VPN103"
+HKR, NDIS, MajorNdisVersion, 1, 5
+HKR, NDIS, MinorNdisVersion, 1, 0
+HKR, Ndi\Interfaces, DefUpper, , "ndis5"
+HKR, Ndi\Interfaces, UpperRange, , "ndis5"
+HKR, Ndi\Interfaces, LowerRange, , "ethernet"
+HKR, Ndi\Interfaces, DefLower, , "ethernet"
+HKR, Ndi\Install, ndis5, , "Neo.CopyFiles.Sys"
+HKR, Ndi\Params\NetworkAddress, ParamDesc, 0, %NetworkAddress%
+HKR, Ndi\Params\NetworkAddress, type, 0, "edit"
+HKR, Ndi\Params\NetworkAddress, LimitText, 0, "12"
+HKR, Ndi\Params\NetworkAddress, UpperCase, 0, "1"
+HKR, Ndi\Params\NetworkAddress, default, 0, %DefaultAddress%
+HKR, Ndi\Params\NetworkAddress, optional, 0, "0"
+HKR, Ndi\Params\MaxSpeed, ParamDesc, 0, %MaxSpeed%
+HKR, Ndi\Params\MaxSpeed, type, 0, "int"
+HKR, Ndi\Params\MaxSpeed, default, 0, "100"
+HKR, Ndi\Params\MaxSpeed, min, 0, "0"
+HKR, Ndi\Params\MaxSpeed, max, 0, "2000"
+HKR, Ndi\Params\MaxSpeed, step, 0, "1"
+HKR, Ndi\Params\MaxSpeed, Base, 0, "10"
+HKR, Ndi\Params\KeepLink, ParamDesc, 0, %KeepLink%
+HKR, Ndi\Params\KeepLink, type, 0, "enum"
+HKR, Ndi\Params\KeepLink\enum, "1", 0, %On%
+HKR, Ndi\Params\KeepLink\enum, "0", 0, %Off%
+HKR, Ndi\Params\KeepLink, default, 0, "0"
+
+
+[Neo.Service]
+DisplayName					= %Neo.Service.DispName%
+Description					= %Neo.Service.Desc%
+ServiceType					= 1
+StartType					= 3
+ErrorControl				= 1
+ServiceBinary				= %12%\Neo6_x64_VPN103.sys
+LoadOrderGroup				= NDIS
+
+[Neo.Reg]
+HKR, Ndi, Service, 0, Neo.Service.Name
+HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"
+HKR, Ndi\Interfaces, UpperRange, 0, "ndis5"
+
+[Neo.EventLog]
+HKR, , EventMessageFile, 0x00020000, "%11%\IoLogMsg.dll;%12%\Neo6_x64_VPN103.sys"
+HKR, , TypesSupported, 0x00010001, 7
+
+[Strings]
+CompanyName					= "SoftEther Corporation"
+DiskDescription				= "VPN Client Device Driver Install Disk"
+Neo.Service.Name			= "Neo_VPN103"
+Neo.Service.DispName		= "VPN Client Device Driver - VPN103"
+Neo.Service.Desc			= "VPN Client Adapter - VPN103"
+NeoAdapter.DeviceDesc		= "VPN Client Adapter - VPN103"
+Neo.EventLog.Name			= "Neo"
+NetworkAddress				= "MAC Address"
+DefaultAddress				= "000001000001"
+MaxSpeed					= "Indicate Speed (Mbps)"
+KeepLink					= "Keep Link"
+On							= "On"
+Off							= "Off"
+
+
+; Auto Generated 20150530_023445.079
+

BIN
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN103.sys


BIN
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN104.cat


+ 114 - 0
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN104.inf

@@ -0,0 +1,114 @@
+; VPN Client Device Driver for Windows 2000 and Greater
+; 
+; Copyright (c) SoftEther Corporation. All Rights Reserved.
+; http://www.softether.co.jp/
+; 
+; BUILD 9558
+
+[Version]
+Signature					= "$Windows NT$"
+Class						= Net
+ClassGUID					= {4D36E972-E325-11CE-BFC1-08002BE10318}
+Provider					= %CompanyName%
+DriverVer					= 05/29/2015, 4.16.0.9558
+CatalogFile.NT				= Neo6_x64_VPN104.cat
+
+[Manufacturer]
+%CompanyName% 				= SoftEther, NTamd64
+
+[SourceDisksNames]
+1=%DiskDescription%, "", , 
+
+[SourceDisksFiles]
+Neo6_x64_VPN104.sys	= 1
+
+[DestinationDirs]
+DefaultDestDir				= 12
+Neo.CopyFiles.Sys			= 12
+
+[Neo.CopyFiles.Sys]
+Neo6_x64_VPN104.sys, , , 2
+
+[SoftEther.NTamd64]
+%NeoAdapter.DeviceDesc%	= NeoAdapter.Install, NeoAdapter_VPN104
+
+[NeoAdapter.Install]
+Characteristics				= 0x1
+AddReg						= Neo.Reg, NeoAdapter.Ndi
+CopyFiles					= Neo.CopyFiles.Sys
+*IfType						= 6
+*MediaType					= 0
+*PhysicalMediaType			= 0
+
+[NeoAdapter.Install.Services]
+AddService					= %Neo.Service.Name%, 2, Neo.Service, Neo.EventLog, , %Neo, EventLog.Name%
+
+[NeoAdapter.Ndi]
+HKR, , NetworkAddress, 0, %DefaultAddress%
+HKR, Ndi, DeviceID, , "NeoAdapter_VPN104"
+HKR, , DevLoader, , ndis
+HKR, , DeviceVxDs, , Neo6_x64_VPN104.sys
+HKR, NDIS, LogDriverName, , "Neo_VPN104"
+HKR, NDIS, MajorNdisVersion, 1, 5
+HKR, NDIS, MinorNdisVersion, 1, 0
+HKR, Ndi\Interfaces, DefUpper, , "ndis5"
+HKR, Ndi\Interfaces, UpperRange, , "ndis5"
+HKR, Ndi\Interfaces, LowerRange, , "ethernet"
+HKR, Ndi\Interfaces, DefLower, , "ethernet"
+HKR, Ndi\Install, ndis5, , "Neo.CopyFiles.Sys"
+HKR, Ndi\Params\NetworkAddress, ParamDesc, 0, %NetworkAddress%
+HKR, Ndi\Params\NetworkAddress, type, 0, "edit"
+HKR, Ndi\Params\NetworkAddress, LimitText, 0, "12"
+HKR, Ndi\Params\NetworkAddress, UpperCase, 0, "1"
+HKR, Ndi\Params\NetworkAddress, default, 0, %DefaultAddress%
+HKR, Ndi\Params\NetworkAddress, optional, 0, "0"
+HKR, Ndi\Params\MaxSpeed, ParamDesc, 0, %MaxSpeed%
+HKR, Ndi\Params\MaxSpeed, type, 0, "int"
+HKR, Ndi\Params\MaxSpeed, default, 0, "100"
+HKR, Ndi\Params\MaxSpeed, min, 0, "0"
+HKR, Ndi\Params\MaxSpeed, max, 0, "2000"
+HKR, Ndi\Params\MaxSpeed, step, 0, "1"
+HKR, Ndi\Params\MaxSpeed, Base, 0, "10"
+HKR, Ndi\Params\KeepLink, ParamDesc, 0, %KeepLink%
+HKR, Ndi\Params\KeepLink, type, 0, "enum"
+HKR, Ndi\Params\KeepLink\enum, "1", 0, %On%
+HKR, Ndi\Params\KeepLink\enum, "0", 0, %Off%
+HKR, Ndi\Params\KeepLink, default, 0, "0"
+
+
+[Neo.Service]
+DisplayName					= %Neo.Service.DispName%
+Description					= %Neo.Service.Desc%
+ServiceType					= 1
+StartType					= 3
+ErrorControl				= 1
+ServiceBinary				= %12%\Neo6_x64_VPN104.sys
+LoadOrderGroup				= NDIS
+
+[Neo.Reg]
+HKR, Ndi, Service, 0, Neo.Service.Name
+HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"
+HKR, Ndi\Interfaces, UpperRange, 0, "ndis5"
+
+[Neo.EventLog]
+HKR, , EventMessageFile, 0x00020000, "%11%\IoLogMsg.dll;%12%\Neo6_x64_VPN104.sys"
+HKR, , TypesSupported, 0x00010001, 7
+
+[Strings]
+CompanyName					= "SoftEther Corporation"
+DiskDescription				= "VPN Client Device Driver Install Disk"
+Neo.Service.Name			= "Neo_VPN104"
+Neo.Service.DispName		= "VPN Client Device Driver - VPN104"
+Neo.Service.Desc			= "VPN Client Adapter - VPN104"
+NeoAdapter.DeviceDesc		= "VPN Client Adapter - VPN104"
+Neo.EventLog.Name			= "Neo"
+NetworkAddress				= "MAC Address"
+DefaultAddress				= "000001000001"
+MaxSpeed					= "Indicate Speed (Mbps)"
+KeepLink					= "Keep Link"
+On							= "On"
+Off							= "Off"
+
+
+; Auto Generated 20150530_023445.174
+

BIN
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN104.sys


BIN
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN105.cat


+ 114 - 0
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN105.inf

@@ -0,0 +1,114 @@
+; VPN Client Device Driver for Windows 2000 and Greater
+; 
+; Copyright (c) SoftEther Corporation. All Rights Reserved.
+; http://www.softether.co.jp/
+; 
+; BUILD 9558
+
+[Version]
+Signature					= "$Windows NT$"
+Class						= Net
+ClassGUID					= {4D36E972-E325-11CE-BFC1-08002BE10318}
+Provider					= %CompanyName%
+DriverVer					= 05/29/2015, 4.16.0.9558
+CatalogFile.NT				= Neo6_x64_VPN105.cat
+
+[Manufacturer]
+%CompanyName% 				= SoftEther, NTamd64
+
+[SourceDisksNames]
+1=%DiskDescription%, "", , 
+
+[SourceDisksFiles]
+Neo6_x64_VPN105.sys	= 1
+
+[DestinationDirs]
+DefaultDestDir				= 12
+Neo.CopyFiles.Sys			= 12
+
+[Neo.CopyFiles.Sys]
+Neo6_x64_VPN105.sys, , , 2
+
+[SoftEther.NTamd64]
+%NeoAdapter.DeviceDesc%	= NeoAdapter.Install, NeoAdapter_VPN105
+
+[NeoAdapter.Install]
+Characteristics				= 0x1
+AddReg						= Neo.Reg, NeoAdapter.Ndi
+CopyFiles					= Neo.CopyFiles.Sys
+*IfType						= 6
+*MediaType					= 0
+*PhysicalMediaType			= 0
+
+[NeoAdapter.Install.Services]
+AddService					= %Neo.Service.Name%, 2, Neo.Service, Neo.EventLog, , %Neo, EventLog.Name%
+
+[NeoAdapter.Ndi]
+HKR, , NetworkAddress, 0, %DefaultAddress%
+HKR, Ndi, DeviceID, , "NeoAdapter_VPN105"
+HKR, , DevLoader, , ndis
+HKR, , DeviceVxDs, , Neo6_x64_VPN105.sys
+HKR, NDIS, LogDriverName, , "Neo_VPN105"
+HKR, NDIS, MajorNdisVersion, 1, 5
+HKR, NDIS, MinorNdisVersion, 1, 0
+HKR, Ndi\Interfaces, DefUpper, , "ndis5"
+HKR, Ndi\Interfaces, UpperRange, , "ndis5"
+HKR, Ndi\Interfaces, LowerRange, , "ethernet"
+HKR, Ndi\Interfaces, DefLower, , "ethernet"
+HKR, Ndi\Install, ndis5, , "Neo.CopyFiles.Sys"
+HKR, Ndi\Params\NetworkAddress, ParamDesc, 0, %NetworkAddress%
+HKR, Ndi\Params\NetworkAddress, type, 0, "edit"
+HKR, Ndi\Params\NetworkAddress, LimitText, 0, "12"
+HKR, Ndi\Params\NetworkAddress, UpperCase, 0, "1"
+HKR, Ndi\Params\NetworkAddress, default, 0, %DefaultAddress%
+HKR, Ndi\Params\NetworkAddress, optional, 0, "0"
+HKR, Ndi\Params\MaxSpeed, ParamDesc, 0, %MaxSpeed%
+HKR, Ndi\Params\MaxSpeed, type, 0, "int"
+HKR, Ndi\Params\MaxSpeed, default, 0, "100"
+HKR, Ndi\Params\MaxSpeed, min, 0, "0"
+HKR, Ndi\Params\MaxSpeed, max, 0, "2000"
+HKR, Ndi\Params\MaxSpeed, step, 0, "1"
+HKR, Ndi\Params\MaxSpeed, Base, 0, "10"
+HKR, Ndi\Params\KeepLink, ParamDesc, 0, %KeepLink%
+HKR, Ndi\Params\KeepLink, type, 0, "enum"
+HKR, Ndi\Params\KeepLink\enum, "1", 0, %On%
+HKR, Ndi\Params\KeepLink\enum, "0", 0, %Off%
+HKR, Ndi\Params\KeepLink, default, 0, "0"
+
+
+[Neo.Service]
+DisplayName					= %Neo.Service.DispName%
+Description					= %Neo.Service.Desc%
+ServiceType					= 1
+StartType					= 3
+ErrorControl				= 1
+ServiceBinary				= %12%\Neo6_x64_VPN105.sys
+LoadOrderGroup				= NDIS
+
+[Neo.Reg]
+HKR, Ndi, Service, 0, Neo.Service.Name
+HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"
+HKR, Ndi\Interfaces, UpperRange, 0, "ndis5"
+
+[Neo.EventLog]
+HKR, , EventMessageFile, 0x00020000, "%11%\IoLogMsg.dll;%12%\Neo6_x64_VPN105.sys"
+HKR, , TypesSupported, 0x00010001, 7
+
+[Strings]
+CompanyName					= "SoftEther Corporation"
+DiskDescription				= "VPN Client Device Driver Install Disk"
+Neo.Service.Name			= "Neo_VPN105"
+Neo.Service.DispName		= "VPN Client Device Driver - VPN105"
+Neo.Service.Desc			= "VPN Client Adapter - VPN105"
+NeoAdapter.DeviceDesc		= "VPN Client Adapter - VPN105"
+Neo.EventLog.Name			= "Neo"
+NetworkAddress				= "MAC Address"
+DefaultAddress				= "000001000001"
+MaxSpeed					= "Indicate Speed (Mbps)"
+KeepLink					= "Keep Link"
+On							= "On"
+Off							= "Off"
+
+
+; Auto Generated 20150530_023445.269
+

BIN
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN105.sys


BIN
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN106.cat


+ 114 - 0
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN106.inf

@@ -0,0 +1,114 @@
+; VPN Client Device Driver for Windows 2000 and Greater
+; 
+; Copyright (c) SoftEther Corporation. All Rights Reserved.
+; http://www.softether.co.jp/
+; 
+; BUILD 9558
+
+[Version]
+Signature					= "$Windows NT$"
+Class						= Net
+ClassGUID					= {4D36E972-E325-11CE-BFC1-08002BE10318}
+Provider					= %CompanyName%
+DriverVer					= 05/29/2015, 4.16.0.9558
+CatalogFile.NT				= Neo6_x64_VPN106.cat
+
+[Manufacturer]
+%CompanyName% 				= SoftEther, NTamd64
+
+[SourceDisksNames]
+1=%DiskDescription%, "", , 
+
+[SourceDisksFiles]
+Neo6_x64_VPN106.sys	= 1
+
+[DestinationDirs]
+DefaultDestDir				= 12
+Neo.CopyFiles.Sys			= 12
+
+[Neo.CopyFiles.Sys]
+Neo6_x64_VPN106.sys, , , 2
+
+[SoftEther.NTamd64]
+%NeoAdapter.DeviceDesc%	= NeoAdapter.Install, NeoAdapter_VPN106
+
+[NeoAdapter.Install]
+Characteristics				= 0x1
+AddReg						= Neo.Reg, NeoAdapter.Ndi
+CopyFiles					= Neo.CopyFiles.Sys
+*IfType						= 6
+*MediaType					= 0
+*PhysicalMediaType			= 0
+
+[NeoAdapter.Install.Services]
+AddService					= %Neo.Service.Name%, 2, Neo.Service, Neo.EventLog, , %Neo, EventLog.Name%
+
+[NeoAdapter.Ndi]
+HKR, , NetworkAddress, 0, %DefaultAddress%
+HKR, Ndi, DeviceID, , "NeoAdapter_VPN106"
+HKR, , DevLoader, , ndis
+HKR, , DeviceVxDs, , Neo6_x64_VPN106.sys
+HKR, NDIS, LogDriverName, , "Neo_VPN106"
+HKR, NDIS, MajorNdisVersion, 1, 5
+HKR, NDIS, MinorNdisVersion, 1, 0
+HKR, Ndi\Interfaces, DefUpper, , "ndis5"
+HKR, Ndi\Interfaces, UpperRange, , "ndis5"
+HKR, Ndi\Interfaces, LowerRange, , "ethernet"
+HKR, Ndi\Interfaces, DefLower, , "ethernet"
+HKR, Ndi\Install, ndis5, , "Neo.CopyFiles.Sys"
+HKR, Ndi\Params\NetworkAddress, ParamDesc, 0, %NetworkAddress%
+HKR, Ndi\Params\NetworkAddress, type, 0, "edit"
+HKR, Ndi\Params\NetworkAddress, LimitText, 0, "12"
+HKR, Ndi\Params\NetworkAddress, UpperCase, 0, "1"
+HKR, Ndi\Params\NetworkAddress, default, 0, %DefaultAddress%
+HKR, Ndi\Params\NetworkAddress, optional, 0, "0"
+HKR, Ndi\Params\MaxSpeed, ParamDesc, 0, %MaxSpeed%
+HKR, Ndi\Params\MaxSpeed, type, 0, "int"
+HKR, Ndi\Params\MaxSpeed, default, 0, "100"
+HKR, Ndi\Params\MaxSpeed, min, 0, "0"
+HKR, Ndi\Params\MaxSpeed, max, 0, "2000"
+HKR, Ndi\Params\MaxSpeed, step, 0, "1"
+HKR, Ndi\Params\MaxSpeed, Base, 0, "10"
+HKR, Ndi\Params\KeepLink, ParamDesc, 0, %KeepLink%
+HKR, Ndi\Params\KeepLink, type, 0, "enum"
+HKR, Ndi\Params\KeepLink\enum, "1", 0, %On%
+HKR, Ndi\Params\KeepLink\enum, "0", 0, %Off%
+HKR, Ndi\Params\KeepLink, default, 0, "0"
+
+
+[Neo.Service]
+DisplayName					= %Neo.Service.DispName%
+Description					= %Neo.Service.Desc%
+ServiceType					= 1
+StartType					= 3
+ErrorControl				= 1
+ServiceBinary				= %12%\Neo6_x64_VPN106.sys
+LoadOrderGroup				= NDIS
+
+[Neo.Reg]
+HKR, Ndi, Service, 0, Neo.Service.Name
+HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"
+HKR, Ndi\Interfaces, UpperRange, 0, "ndis5"
+
+[Neo.EventLog]
+HKR, , EventMessageFile, 0x00020000, "%11%\IoLogMsg.dll;%12%\Neo6_x64_VPN106.sys"
+HKR, , TypesSupported, 0x00010001, 7
+
+[Strings]
+CompanyName					= "SoftEther Corporation"
+DiskDescription				= "VPN Client Device Driver Install Disk"
+Neo.Service.Name			= "Neo_VPN106"
+Neo.Service.DispName		= "VPN Client Device Driver - VPN106"
+Neo.Service.Desc			= "VPN Client Adapter - VPN106"
+NeoAdapter.DeviceDesc		= "VPN Client Adapter - VPN106"
+Neo.EventLog.Name			= "Neo"
+NetworkAddress				= "MAC Address"
+DefaultAddress				= "000001000001"
+MaxSpeed					= "Indicate Speed (Mbps)"
+KeepLink					= "Keep Link"
+On							= "On"
+Off							= "Off"
+
+
+; Auto Generated 20150530_023445.364
+

BIN
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN106.sys


BIN
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN107.cat


+ 114 - 0
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN107.inf

@@ -0,0 +1,114 @@
+; VPN Client Device Driver for Windows 2000 and Greater
+; 
+; Copyright (c) SoftEther Corporation. All Rights Reserved.
+; http://www.softether.co.jp/
+; 
+; BUILD 9558
+
+[Version]
+Signature					= "$Windows NT$"
+Class						= Net
+ClassGUID					= {4D36E972-E325-11CE-BFC1-08002BE10318}
+Provider					= %CompanyName%
+DriverVer					= 05/29/2015, 4.16.0.9558
+CatalogFile.NT				= Neo6_x64_VPN107.cat
+
+[Manufacturer]
+%CompanyName% 				= SoftEther, NTamd64
+
+[SourceDisksNames]
+1=%DiskDescription%, "", , 
+
+[SourceDisksFiles]
+Neo6_x64_VPN107.sys	= 1
+
+[DestinationDirs]
+DefaultDestDir				= 12
+Neo.CopyFiles.Sys			= 12
+
+[Neo.CopyFiles.Sys]
+Neo6_x64_VPN107.sys, , , 2
+
+[SoftEther.NTamd64]
+%NeoAdapter.DeviceDesc%	= NeoAdapter.Install, NeoAdapter_VPN107
+
+[NeoAdapter.Install]
+Characteristics				= 0x1
+AddReg						= Neo.Reg, NeoAdapter.Ndi
+CopyFiles					= Neo.CopyFiles.Sys
+*IfType						= 6
+*MediaType					= 0
+*PhysicalMediaType			= 0
+
+[NeoAdapter.Install.Services]
+AddService					= %Neo.Service.Name%, 2, Neo.Service, Neo.EventLog, , %Neo, EventLog.Name%
+
+[NeoAdapter.Ndi]
+HKR, , NetworkAddress, 0, %DefaultAddress%
+HKR, Ndi, DeviceID, , "NeoAdapter_VPN107"
+HKR, , DevLoader, , ndis
+HKR, , DeviceVxDs, , Neo6_x64_VPN107.sys
+HKR, NDIS, LogDriverName, , "Neo_VPN107"
+HKR, NDIS, MajorNdisVersion, 1, 5
+HKR, NDIS, MinorNdisVersion, 1, 0
+HKR, Ndi\Interfaces, DefUpper, , "ndis5"
+HKR, Ndi\Interfaces, UpperRange, , "ndis5"
+HKR, Ndi\Interfaces, LowerRange, , "ethernet"
+HKR, Ndi\Interfaces, DefLower, , "ethernet"
+HKR, Ndi\Install, ndis5, , "Neo.CopyFiles.Sys"
+HKR, Ndi\Params\NetworkAddress, ParamDesc, 0, %NetworkAddress%
+HKR, Ndi\Params\NetworkAddress, type, 0, "edit"
+HKR, Ndi\Params\NetworkAddress, LimitText, 0, "12"
+HKR, Ndi\Params\NetworkAddress, UpperCase, 0, "1"
+HKR, Ndi\Params\NetworkAddress, default, 0, %DefaultAddress%
+HKR, Ndi\Params\NetworkAddress, optional, 0, "0"
+HKR, Ndi\Params\MaxSpeed, ParamDesc, 0, %MaxSpeed%
+HKR, Ndi\Params\MaxSpeed, type, 0, "int"
+HKR, Ndi\Params\MaxSpeed, default, 0, "100"
+HKR, Ndi\Params\MaxSpeed, min, 0, "0"
+HKR, Ndi\Params\MaxSpeed, max, 0, "2000"
+HKR, Ndi\Params\MaxSpeed, step, 0, "1"
+HKR, Ndi\Params\MaxSpeed, Base, 0, "10"
+HKR, Ndi\Params\KeepLink, ParamDesc, 0, %KeepLink%
+HKR, Ndi\Params\KeepLink, type, 0, "enum"
+HKR, Ndi\Params\KeepLink\enum, "1", 0, %On%
+HKR, Ndi\Params\KeepLink\enum, "0", 0, %Off%
+HKR, Ndi\Params\KeepLink, default, 0, "0"
+
+
+[Neo.Service]
+DisplayName					= %Neo.Service.DispName%
+Description					= %Neo.Service.Desc%
+ServiceType					= 1
+StartType					= 3
+ErrorControl				= 1
+ServiceBinary				= %12%\Neo6_x64_VPN107.sys
+LoadOrderGroup				= NDIS
+
+[Neo.Reg]
+HKR, Ndi, Service, 0, Neo.Service.Name
+HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"
+HKR, Ndi\Interfaces, UpperRange, 0, "ndis5"
+
+[Neo.EventLog]
+HKR, , EventMessageFile, 0x00020000, "%11%\IoLogMsg.dll;%12%\Neo6_x64_VPN107.sys"
+HKR, , TypesSupported, 0x00010001, 7
+
+[Strings]
+CompanyName					= "SoftEther Corporation"
+DiskDescription				= "VPN Client Device Driver Install Disk"
+Neo.Service.Name			= "Neo_VPN107"
+Neo.Service.DispName		= "VPN Client Device Driver - VPN107"
+Neo.Service.Desc			= "VPN Client Adapter - VPN107"
+NeoAdapter.DeviceDesc		= "VPN Client Adapter - VPN107"
+Neo.EventLog.Name			= "Neo"
+NetworkAddress				= "MAC Address"
+DefaultAddress				= "000001000001"
+MaxSpeed					= "Indicate Speed (Mbps)"
+KeepLink					= "Keep Link"
+On							= "On"
+Off							= "Off"
+
+
+; Auto Generated 20150530_023445.459
+

BIN
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN107.sys


BIN
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN108.cat


+ 114 - 0
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN108.inf

@@ -0,0 +1,114 @@
+; VPN Client Device Driver for Windows 2000 and Greater
+; 
+; Copyright (c) SoftEther Corporation. All Rights Reserved.
+; http://www.softether.co.jp/
+; 
+; BUILD 9558
+
+[Version]
+Signature					= "$Windows NT$"
+Class						= Net
+ClassGUID					= {4D36E972-E325-11CE-BFC1-08002BE10318}
+Provider					= %CompanyName%
+DriverVer					= 05/29/2015, 4.16.0.9558
+CatalogFile.NT				= Neo6_x64_VPN108.cat
+
+[Manufacturer]
+%CompanyName% 				= SoftEther, NTamd64
+
+[SourceDisksNames]
+1=%DiskDescription%, "", , 
+
+[SourceDisksFiles]
+Neo6_x64_VPN108.sys	= 1
+
+[DestinationDirs]
+DefaultDestDir				= 12
+Neo.CopyFiles.Sys			= 12
+
+[Neo.CopyFiles.Sys]
+Neo6_x64_VPN108.sys, , , 2
+
+[SoftEther.NTamd64]
+%NeoAdapter.DeviceDesc%	= NeoAdapter.Install, NeoAdapter_VPN108
+
+[NeoAdapter.Install]
+Characteristics				= 0x1
+AddReg						= Neo.Reg, NeoAdapter.Ndi
+CopyFiles					= Neo.CopyFiles.Sys
+*IfType						= 6
+*MediaType					= 0
+*PhysicalMediaType			= 0
+
+[NeoAdapter.Install.Services]
+AddService					= %Neo.Service.Name%, 2, Neo.Service, Neo.EventLog, , %Neo, EventLog.Name%
+
+[NeoAdapter.Ndi]
+HKR, , NetworkAddress, 0, %DefaultAddress%
+HKR, Ndi, DeviceID, , "NeoAdapter_VPN108"
+HKR, , DevLoader, , ndis
+HKR, , DeviceVxDs, , Neo6_x64_VPN108.sys
+HKR, NDIS, LogDriverName, , "Neo_VPN108"
+HKR, NDIS, MajorNdisVersion, 1, 5
+HKR, NDIS, MinorNdisVersion, 1, 0
+HKR, Ndi\Interfaces, DefUpper, , "ndis5"
+HKR, Ndi\Interfaces, UpperRange, , "ndis5"
+HKR, Ndi\Interfaces, LowerRange, , "ethernet"
+HKR, Ndi\Interfaces, DefLower, , "ethernet"
+HKR, Ndi\Install, ndis5, , "Neo.CopyFiles.Sys"
+HKR, Ndi\Params\NetworkAddress, ParamDesc, 0, %NetworkAddress%
+HKR, Ndi\Params\NetworkAddress, type, 0, "edit"
+HKR, Ndi\Params\NetworkAddress, LimitText, 0, "12"
+HKR, Ndi\Params\NetworkAddress, UpperCase, 0, "1"
+HKR, Ndi\Params\NetworkAddress, default, 0, %DefaultAddress%
+HKR, Ndi\Params\NetworkAddress, optional, 0, "0"
+HKR, Ndi\Params\MaxSpeed, ParamDesc, 0, %MaxSpeed%
+HKR, Ndi\Params\MaxSpeed, type, 0, "int"
+HKR, Ndi\Params\MaxSpeed, default, 0, "100"
+HKR, Ndi\Params\MaxSpeed, min, 0, "0"
+HKR, Ndi\Params\MaxSpeed, max, 0, "2000"
+HKR, Ndi\Params\MaxSpeed, step, 0, "1"
+HKR, Ndi\Params\MaxSpeed, Base, 0, "10"
+HKR, Ndi\Params\KeepLink, ParamDesc, 0, %KeepLink%
+HKR, Ndi\Params\KeepLink, type, 0, "enum"
+HKR, Ndi\Params\KeepLink\enum, "1", 0, %On%
+HKR, Ndi\Params\KeepLink\enum, "0", 0, %Off%
+HKR, Ndi\Params\KeepLink, default, 0, "0"
+
+
+[Neo.Service]
+DisplayName					= %Neo.Service.DispName%
+Description					= %Neo.Service.Desc%
+ServiceType					= 1
+StartType					= 3
+ErrorControl				= 1
+ServiceBinary				= %12%\Neo6_x64_VPN108.sys
+LoadOrderGroup				= NDIS
+
+[Neo.Reg]
+HKR, Ndi, Service, 0, Neo.Service.Name
+HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"
+HKR, Ndi\Interfaces, UpperRange, 0, "ndis5"
+
+[Neo.EventLog]
+HKR, , EventMessageFile, 0x00020000, "%11%\IoLogMsg.dll;%12%\Neo6_x64_VPN108.sys"
+HKR, , TypesSupported, 0x00010001, 7
+
+[Strings]
+CompanyName					= "SoftEther Corporation"
+DiskDescription				= "VPN Client Device Driver Install Disk"
+Neo.Service.Name			= "Neo_VPN108"
+Neo.Service.DispName		= "VPN Client Device Driver - VPN108"
+Neo.Service.Desc			= "VPN Client Adapter - VPN108"
+NeoAdapter.DeviceDesc		= "VPN Client Adapter - VPN108"
+Neo.EventLog.Name			= "Neo"
+NetworkAddress				= "MAC Address"
+DefaultAddress				= "000001000001"
+MaxSpeed					= "Indicate Speed (Mbps)"
+KeepLink					= "Keep Link"
+On							= "On"
+Off							= "Off"
+
+
+; Auto Generated 20150530_023445.556
+

BIN
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN108.sys


BIN
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN109.cat


+ 114 - 0
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN109.inf

@@ -0,0 +1,114 @@
+; VPN Client Device Driver for Windows 2000 and Greater
+; 
+; Copyright (c) SoftEther Corporation. All Rights Reserved.
+; http://www.softether.co.jp/
+; 
+; BUILD 9558
+
+[Version]
+Signature					= "$Windows NT$"
+Class						= Net
+ClassGUID					= {4D36E972-E325-11CE-BFC1-08002BE10318}
+Provider					= %CompanyName%
+DriverVer					= 05/29/2015, 4.16.0.9558
+CatalogFile.NT				= Neo6_x64_VPN109.cat
+
+[Manufacturer]
+%CompanyName% 				= SoftEther, NTamd64
+
+[SourceDisksNames]
+1=%DiskDescription%, "", , 
+
+[SourceDisksFiles]
+Neo6_x64_VPN109.sys	= 1
+
+[DestinationDirs]
+DefaultDestDir				= 12
+Neo.CopyFiles.Sys			= 12
+
+[Neo.CopyFiles.Sys]
+Neo6_x64_VPN109.sys, , , 2
+
+[SoftEther.NTamd64]
+%NeoAdapter.DeviceDesc%	= NeoAdapter.Install, NeoAdapter_VPN109
+
+[NeoAdapter.Install]
+Characteristics				= 0x1
+AddReg						= Neo.Reg, NeoAdapter.Ndi
+CopyFiles					= Neo.CopyFiles.Sys
+*IfType						= 6
+*MediaType					= 0
+*PhysicalMediaType			= 0
+
+[NeoAdapter.Install.Services]
+AddService					= %Neo.Service.Name%, 2, Neo.Service, Neo.EventLog, , %Neo, EventLog.Name%
+
+[NeoAdapter.Ndi]
+HKR, , NetworkAddress, 0, %DefaultAddress%
+HKR, Ndi, DeviceID, , "NeoAdapter_VPN109"
+HKR, , DevLoader, , ndis
+HKR, , DeviceVxDs, , Neo6_x64_VPN109.sys
+HKR, NDIS, LogDriverName, , "Neo_VPN109"
+HKR, NDIS, MajorNdisVersion, 1, 5
+HKR, NDIS, MinorNdisVersion, 1, 0
+HKR, Ndi\Interfaces, DefUpper, , "ndis5"
+HKR, Ndi\Interfaces, UpperRange, , "ndis5"
+HKR, Ndi\Interfaces, LowerRange, , "ethernet"
+HKR, Ndi\Interfaces, DefLower, , "ethernet"
+HKR, Ndi\Install, ndis5, , "Neo.CopyFiles.Sys"
+HKR, Ndi\Params\NetworkAddress, ParamDesc, 0, %NetworkAddress%
+HKR, Ndi\Params\NetworkAddress, type, 0, "edit"
+HKR, Ndi\Params\NetworkAddress, LimitText, 0, "12"
+HKR, Ndi\Params\NetworkAddress, UpperCase, 0, "1"
+HKR, Ndi\Params\NetworkAddress, default, 0, %DefaultAddress%
+HKR, Ndi\Params\NetworkAddress, optional, 0, "0"
+HKR, Ndi\Params\MaxSpeed, ParamDesc, 0, %MaxSpeed%
+HKR, Ndi\Params\MaxSpeed, type, 0, "int"
+HKR, Ndi\Params\MaxSpeed, default, 0, "100"
+HKR, Ndi\Params\MaxSpeed, min, 0, "0"
+HKR, Ndi\Params\MaxSpeed, max, 0, "2000"
+HKR, Ndi\Params\MaxSpeed, step, 0, "1"
+HKR, Ndi\Params\MaxSpeed, Base, 0, "10"
+HKR, Ndi\Params\KeepLink, ParamDesc, 0, %KeepLink%
+HKR, Ndi\Params\KeepLink, type, 0, "enum"
+HKR, Ndi\Params\KeepLink\enum, "1", 0, %On%
+HKR, Ndi\Params\KeepLink\enum, "0", 0, %Off%
+HKR, Ndi\Params\KeepLink, default, 0, "0"
+
+
+[Neo.Service]
+DisplayName					= %Neo.Service.DispName%
+Description					= %Neo.Service.Desc%
+ServiceType					= 1
+StartType					= 3
+ErrorControl				= 1
+ServiceBinary				= %12%\Neo6_x64_VPN109.sys
+LoadOrderGroup				= NDIS
+
+[Neo.Reg]
+HKR, Ndi, Service, 0, Neo.Service.Name
+HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"
+HKR, Ndi\Interfaces, UpperRange, 0, "ndis5"
+
+[Neo.EventLog]
+HKR, , EventMessageFile, 0x00020000, "%11%\IoLogMsg.dll;%12%\Neo6_x64_VPN109.sys"
+HKR, , TypesSupported, 0x00010001, 7
+
+[Strings]
+CompanyName					= "SoftEther Corporation"
+DiskDescription				= "VPN Client Device Driver Install Disk"
+Neo.Service.Name			= "Neo_VPN109"
+Neo.Service.DispName		= "VPN Client Device Driver - VPN109"
+Neo.Service.Desc			= "VPN Client Adapter - VPN109"
+NeoAdapter.DeviceDesc		= "VPN Client Adapter - VPN109"
+Neo.EventLog.Name			= "Neo"
+NetworkAddress				= "MAC Address"
+DefaultAddress				= "000001000001"
+MaxSpeed					= "Indicate Speed (Mbps)"
+KeepLink					= "Keep Link"
+On							= "On"
+Off							= "Off"
+
+
+; Auto Generated 20150530_023445.652
+

BIN
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN109.sys


BIN
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN11.cat


+ 114 - 0
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN11.inf

@@ -0,0 +1,114 @@
+; VPN Client Device Driver for Windows 2000 and Greater
+; 
+; Copyright (c) SoftEther Corporation. All Rights Reserved.
+; http://www.softether.co.jp/
+; 
+; BUILD 9558
+
+[Version]
+Signature					= "$Windows NT$"
+Class						= Net
+ClassGUID					= {4D36E972-E325-11CE-BFC1-08002BE10318}
+Provider					= %CompanyName%
+DriverVer					= 05/29/2015, 4.16.0.9558
+CatalogFile.NT				= Neo6_x64_VPN11.cat
+
+[Manufacturer]
+%CompanyName% 				= SoftEther, NTamd64
+
+[SourceDisksNames]
+1=%DiskDescription%, "", , 
+
+[SourceDisksFiles]
+Neo6_x64_VPN11.sys	= 1
+
+[DestinationDirs]
+DefaultDestDir				= 12
+Neo.CopyFiles.Sys			= 12
+
+[Neo.CopyFiles.Sys]
+Neo6_x64_VPN11.sys, , , 2
+
+[SoftEther.NTamd64]
+%NeoAdapter.DeviceDesc%	= NeoAdapter.Install, NeoAdapter_VPN11
+
+[NeoAdapter.Install]
+Characteristics				= 0x1
+AddReg						= Neo.Reg, NeoAdapter.Ndi
+CopyFiles					= Neo.CopyFiles.Sys
+*IfType						= 6
+*MediaType					= 0
+*PhysicalMediaType			= 0
+
+[NeoAdapter.Install.Services]
+AddService					= %Neo.Service.Name%, 2, Neo.Service, Neo.EventLog, , %Neo, EventLog.Name%
+
+[NeoAdapter.Ndi]
+HKR, , NetworkAddress, 0, %DefaultAddress%
+HKR, Ndi, DeviceID, , "NeoAdapter_VPN11"
+HKR, , DevLoader, , ndis
+HKR, , DeviceVxDs, , Neo6_x64_VPN11.sys
+HKR, NDIS, LogDriverName, , "Neo_VPN11"
+HKR, NDIS, MajorNdisVersion, 1, 5
+HKR, NDIS, MinorNdisVersion, 1, 0
+HKR, Ndi\Interfaces, DefUpper, , "ndis5"
+HKR, Ndi\Interfaces, UpperRange, , "ndis5"
+HKR, Ndi\Interfaces, LowerRange, , "ethernet"
+HKR, Ndi\Interfaces, DefLower, , "ethernet"
+HKR, Ndi\Install, ndis5, , "Neo.CopyFiles.Sys"
+HKR, Ndi\Params\NetworkAddress, ParamDesc, 0, %NetworkAddress%
+HKR, Ndi\Params\NetworkAddress, type, 0, "edit"
+HKR, Ndi\Params\NetworkAddress, LimitText, 0, "12"
+HKR, Ndi\Params\NetworkAddress, UpperCase, 0, "1"
+HKR, Ndi\Params\NetworkAddress, default, 0, %DefaultAddress%
+HKR, Ndi\Params\NetworkAddress, optional, 0, "0"
+HKR, Ndi\Params\MaxSpeed, ParamDesc, 0, %MaxSpeed%
+HKR, Ndi\Params\MaxSpeed, type, 0, "int"
+HKR, Ndi\Params\MaxSpeed, default, 0, "100"
+HKR, Ndi\Params\MaxSpeed, min, 0, "0"
+HKR, Ndi\Params\MaxSpeed, max, 0, "2000"
+HKR, Ndi\Params\MaxSpeed, step, 0, "1"
+HKR, Ndi\Params\MaxSpeed, Base, 0, "10"
+HKR, Ndi\Params\KeepLink, ParamDesc, 0, %KeepLink%
+HKR, Ndi\Params\KeepLink, type, 0, "enum"
+HKR, Ndi\Params\KeepLink\enum, "1", 0, %On%
+HKR, Ndi\Params\KeepLink\enum, "0", 0, %Off%
+HKR, Ndi\Params\KeepLink, default, 0, "0"
+
+
+[Neo.Service]
+DisplayName					= %Neo.Service.DispName%
+Description					= %Neo.Service.Desc%
+ServiceType					= 1
+StartType					= 3
+ErrorControl				= 1
+ServiceBinary				= %12%\Neo6_x64_VPN11.sys
+LoadOrderGroup				= NDIS
+
+[Neo.Reg]
+HKR, Ndi, Service, 0, Neo.Service.Name
+HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"
+HKR, Ndi\Interfaces, UpperRange, 0, "ndis5"
+
+[Neo.EventLog]
+HKR, , EventMessageFile, 0x00020000, "%11%\IoLogMsg.dll;%12%\Neo6_x64_VPN11.sys"
+HKR, , TypesSupported, 0x00010001, 7
+
+[Strings]
+CompanyName					= "SoftEther Corporation"
+DiskDescription				= "VPN Client Device Driver Install Disk"
+Neo.Service.Name			= "Neo_VPN11"
+Neo.Service.DispName		= "VPN Client Device Driver - VPN11"
+Neo.Service.Desc			= "VPN Client Adapter - VPN11"
+NeoAdapter.DeviceDesc		= "VPN Client Adapter - VPN11"
+Neo.EventLog.Name			= "Neo"
+NetworkAddress				= "MAC Address"
+DefaultAddress				= "000001000001"
+MaxSpeed					= "Indicate Speed (Mbps)"
+KeepLink					= "Keep Link"
+On							= "On"
+Off							= "Off"
+
+
+; Auto Generated 20150530_023436.274
+

BIN
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN11.sys


BIN
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN110.cat


+ 114 - 0
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN110.inf

@@ -0,0 +1,114 @@
+; VPN Client Device Driver for Windows 2000 and Greater
+; 
+; Copyright (c) SoftEther Corporation. All Rights Reserved.
+; http://www.softether.co.jp/
+; 
+; BUILD 9558
+
+[Version]
+Signature					= "$Windows NT$"
+Class						= Net
+ClassGUID					= {4D36E972-E325-11CE-BFC1-08002BE10318}
+Provider					= %CompanyName%
+DriverVer					= 05/29/2015, 4.16.0.9558
+CatalogFile.NT				= Neo6_x64_VPN110.cat
+
+[Manufacturer]
+%CompanyName% 				= SoftEther, NTamd64
+
+[SourceDisksNames]
+1=%DiskDescription%, "", , 
+
+[SourceDisksFiles]
+Neo6_x64_VPN110.sys	= 1
+
+[DestinationDirs]
+DefaultDestDir				= 12
+Neo.CopyFiles.Sys			= 12
+
+[Neo.CopyFiles.Sys]
+Neo6_x64_VPN110.sys, , , 2
+
+[SoftEther.NTamd64]
+%NeoAdapter.DeviceDesc%	= NeoAdapter.Install, NeoAdapter_VPN110
+
+[NeoAdapter.Install]
+Characteristics				= 0x1
+AddReg						= Neo.Reg, NeoAdapter.Ndi
+CopyFiles					= Neo.CopyFiles.Sys
+*IfType						= 6
+*MediaType					= 0
+*PhysicalMediaType			= 0
+
+[NeoAdapter.Install.Services]
+AddService					= %Neo.Service.Name%, 2, Neo.Service, Neo.EventLog, , %Neo, EventLog.Name%
+
+[NeoAdapter.Ndi]
+HKR, , NetworkAddress, 0, %DefaultAddress%
+HKR, Ndi, DeviceID, , "NeoAdapter_VPN110"
+HKR, , DevLoader, , ndis
+HKR, , DeviceVxDs, , Neo6_x64_VPN110.sys
+HKR, NDIS, LogDriverName, , "Neo_VPN110"
+HKR, NDIS, MajorNdisVersion, 1, 5
+HKR, NDIS, MinorNdisVersion, 1, 0
+HKR, Ndi\Interfaces, DefUpper, , "ndis5"
+HKR, Ndi\Interfaces, UpperRange, , "ndis5"
+HKR, Ndi\Interfaces, LowerRange, , "ethernet"
+HKR, Ndi\Interfaces, DefLower, , "ethernet"
+HKR, Ndi\Install, ndis5, , "Neo.CopyFiles.Sys"
+HKR, Ndi\Params\NetworkAddress, ParamDesc, 0, %NetworkAddress%
+HKR, Ndi\Params\NetworkAddress, type, 0, "edit"
+HKR, Ndi\Params\NetworkAddress, LimitText, 0, "12"
+HKR, Ndi\Params\NetworkAddress, UpperCase, 0, "1"
+HKR, Ndi\Params\NetworkAddress, default, 0, %DefaultAddress%
+HKR, Ndi\Params\NetworkAddress, optional, 0, "0"
+HKR, Ndi\Params\MaxSpeed, ParamDesc, 0, %MaxSpeed%
+HKR, Ndi\Params\MaxSpeed, type, 0, "int"
+HKR, Ndi\Params\MaxSpeed, default, 0, "100"
+HKR, Ndi\Params\MaxSpeed, min, 0, "0"
+HKR, Ndi\Params\MaxSpeed, max, 0, "2000"
+HKR, Ndi\Params\MaxSpeed, step, 0, "1"
+HKR, Ndi\Params\MaxSpeed, Base, 0, "10"
+HKR, Ndi\Params\KeepLink, ParamDesc, 0, %KeepLink%
+HKR, Ndi\Params\KeepLink, type, 0, "enum"
+HKR, Ndi\Params\KeepLink\enum, "1", 0, %On%
+HKR, Ndi\Params\KeepLink\enum, "0", 0, %Off%
+HKR, Ndi\Params\KeepLink, default, 0, "0"
+
+
+[Neo.Service]
+DisplayName					= %Neo.Service.DispName%
+Description					= %Neo.Service.Desc%
+ServiceType					= 1
+StartType					= 3
+ErrorControl				= 1
+ServiceBinary				= %12%\Neo6_x64_VPN110.sys
+LoadOrderGroup				= NDIS
+
+[Neo.Reg]
+HKR, Ndi, Service, 0, Neo.Service.Name
+HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"
+HKR, Ndi\Interfaces, UpperRange, 0, "ndis5"
+
+[Neo.EventLog]
+HKR, , EventMessageFile, 0x00020000, "%11%\IoLogMsg.dll;%12%\Neo6_x64_VPN110.sys"
+HKR, , TypesSupported, 0x00010001, 7
+
+[Strings]
+CompanyName					= "SoftEther Corporation"
+DiskDescription				= "VPN Client Device Driver Install Disk"
+Neo.Service.Name			= "Neo_VPN110"
+Neo.Service.DispName		= "VPN Client Device Driver - VPN110"
+Neo.Service.Desc			= "VPN Client Adapter - VPN110"
+NeoAdapter.DeviceDesc		= "VPN Client Adapter - VPN110"
+Neo.EventLog.Name			= "Neo"
+NetworkAddress				= "MAC Address"
+DefaultAddress				= "000001000001"
+MaxSpeed					= "Indicate Speed (Mbps)"
+KeepLink					= "Keep Link"
+On							= "On"
+Off							= "Off"
+
+
+; Auto Generated 20150530_023445.747
+

BIN
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN110.sys


BIN
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN111.cat


+ 114 - 0
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN111.inf

@@ -0,0 +1,114 @@
+; VPN Client Device Driver for Windows 2000 and Greater
+; 
+; Copyright (c) SoftEther Corporation. All Rights Reserved.
+; http://www.softether.co.jp/
+; 
+; BUILD 9558
+
+[Version]
+Signature					= "$Windows NT$"
+Class						= Net
+ClassGUID					= {4D36E972-E325-11CE-BFC1-08002BE10318}
+Provider					= %CompanyName%
+DriverVer					= 05/29/2015, 4.16.0.9558
+CatalogFile.NT				= Neo6_x64_VPN111.cat
+
+[Manufacturer]
+%CompanyName% 				= SoftEther, NTamd64
+
+[SourceDisksNames]
+1=%DiskDescription%, "", , 
+
+[SourceDisksFiles]
+Neo6_x64_VPN111.sys	= 1
+
+[DestinationDirs]
+DefaultDestDir				= 12
+Neo.CopyFiles.Sys			= 12
+
+[Neo.CopyFiles.Sys]
+Neo6_x64_VPN111.sys, , , 2
+
+[SoftEther.NTamd64]
+%NeoAdapter.DeviceDesc%	= NeoAdapter.Install, NeoAdapter_VPN111
+
+[NeoAdapter.Install]
+Characteristics				= 0x1
+AddReg						= Neo.Reg, NeoAdapter.Ndi
+CopyFiles					= Neo.CopyFiles.Sys
+*IfType						= 6
+*MediaType					= 0
+*PhysicalMediaType			= 0
+
+[NeoAdapter.Install.Services]
+AddService					= %Neo.Service.Name%, 2, Neo.Service, Neo.EventLog, , %Neo, EventLog.Name%
+
+[NeoAdapter.Ndi]
+HKR, , NetworkAddress, 0, %DefaultAddress%
+HKR, Ndi, DeviceID, , "NeoAdapter_VPN111"
+HKR, , DevLoader, , ndis
+HKR, , DeviceVxDs, , Neo6_x64_VPN111.sys
+HKR, NDIS, LogDriverName, , "Neo_VPN111"
+HKR, NDIS, MajorNdisVersion, 1, 5
+HKR, NDIS, MinorNdisVersion, 1, 0
+HKR, Ndi\Interfaces, DefUpper, , "ndis5"
+HKR, Ndi\Interfaces, UpperRange, , "ndis5"
+HKR, Ndi\Interfaces, LowerRange, , "ethernet"
+HKR, Ndi\Interfaces, DefLower, , "ethernet"
+HKR, Ndi\Install, ndis5, , "Neo.CopyFiles.Sys"
+HKR, Ndi\Params\NetworkAddress, ParamDesc, 0, %NetworkAddress%
+HKR, Ndi\Params\NetworkAddress, type, 0, "edit"
+HKR, Ndi\Params\NetworkAddress, LimitText, 0, "12"
+HKR, Ndi\Params\NetworkAddress, UpperCase, 0, "1"
+HKR, Ndi\Params\NetworkAddress, default, 0, %DefaultAddress%
+HKR, Ndi\Params\NetworkAddress, optional, 0, "0"
+HKR, Ndi\Params\MaxSpeed, ParamDesc, 0, %MaxSpeed%
+HKR, Ndi\Params\MaxSpeed, type, 0, "int"
+HKR, Ndi\Params\MaxSpeed, default, 0, "100"
+HKR, Ndi\Params\MaxSpeed, min, 0, "0"
+HKR, Ndi\Params\MaxSpeed, max, 0, "2000"
+HKR, Ndi\Params\MaxSpeed, step, 0, "1"
+HKR, Ndi\Params\MaxSpeed, Base, 0, "10"
+HKR, Ndi\Params\KeepLink, ParamDesc, 0, %KeepLink%
+HKR, Ndi\Params\KeepLink, type, 0, "enum"
+HKR, Ndi\Params\KeepLink\enum, "1", 0, %On%
+HKR, Ndi\Params\KeepLink\enum, "0", 0, %Off%
+HKR, Ndi\Params\KeepLink, default, 0, "0"
+
+
+[Neo.Service]
+DisplayName					= %Neo.Service.DispName%
+Description					= %Neo.Service.Desc%
+ServiceType					= 1
+StartType					= 3
+ErrorControl				= 1
+ServiceBinary				= %12%\Neo6_x64_VPN111.sys
+LoadOrderGroup				= NDIS
+
+[Neo.Reg]
+HKR, Ndi, Service, 0, Neo.Service.Name
+HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"
+HKR, Ndi\Interfaces, UpperRange, 0, "ndis5"
+
+[Neo.EventLog]
+HKR, , EventMessageFile, 0x00020000, "%11%\IoLogMsg.dll;%12%\Neo6_x64_VPN111.sys"
+HKR, , TypesSupported, 0x00010001, 7
+
+[Strings]
+CompanyName					= "SoftEther Corporation"
+DiskDescription				= "VPN Client Device Driver Install Disk"
+Neo.Service.Name			= "Neo_VPN111"
+Neo.Service.DispName		= "VPN Client Device Driver - VPN111"
+Neo.Service.Desc			= "VPN Client Adapter - VPN111"
+NeoAdapter.DeviceDesc		= "VPN Client Adapter - VPN111"
+Neo.EventLog.Name			= "Neo"
+NetworkAddress				= "MAC Address"
+DefaultAddress				= "000001000001"
+MaxSpeed					= "Indicate Speed (Mbps)"
+KeepLink					= "Keep Link"
+On							= "On"
+Off							= "Off"
+
+
+; Auto Generated 20150530_023445.843
+

BIN
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN111.sys


BIN
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN112.cat


+ 114 - 0
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN112.inf

@@ -0,0 +1,114 @@
+; VPN Client Device Driver for Windows 2000 and Greater
+; 
+; Copyright (c) SoftEther Corporation. All Rights Reserved.
+; http://www.softether.co.jp/
+; 
+; BUILD 9558
+
+[Version]
+Signature					= "$Windows NT$"
+Class						= Net
+ClassGUID					= {4D36E972-E325-11CE-BFC1-08002BE10318}
+Provider					= %CompanyName%
+DriverVer					= 05/29/2015, 4.16.0.9558
+CatalogFile.NT				= Neo6_x64_VPN112.cat
+
+[Manufacturer]
+%CompanyName% 				= SoftEther, NTamd64
+
+[SourceDisksNames]
+1=%DiskDescription%, "", , 
+
+[SourceDisksFiles]
+Neo6_x64_VPN112.sys	= 1
+
+[DestinationDirs]
+DefaultDestDir				= 12
+Neo.CopyFiles.Sys			= 12
+
+[Neo.CopyFiles.Sys]
+Neo6_x64_VPN112.sys, , , 2
+
+[SoftEther.NTamd64]
+%NeoAdapter.DeviceDesc%	= NeoAdapter.Install, NeoAdapter_VPN112
+
+[NeoAdapter.Install]
+Characteristics				= 0x1
+AddReg						= Neo.Reg, NeoAdapter.Ndi
+CopyFiles					= Neo.CopyFiles.Sys
+*IfType						= 6
+*MediaType					= 0
+*PhysicalMediaType			= 0
+
+[NeoAdapter.Install.Services]
+AddService					= %Neo.Service.Name%, 2, Neo.Service, Neo.EventLog, , %Neo, EventLog.Name%
+
+[NeoAdapter.Ndi]
+HKR, , NetworkAddress, 0, %DefaultAddress%
+HKR, Ndi, DeviceID, , "NeoAdapter_VPN112"
+HKR, , DevLoader, , ndis
+HKR, , DeviceVxDs, , Neo6_x64_VPN112.sys
+HKR, NDIS, LogDriverName, , "Neo_VPN112"
+HKR, NDIS, MajorNdisVersion, 1, 5
+HKR, NDIS, MinorNdisVersion, 1, 0
+HKR, Ndi\Interfaces, DefUpper, , "ndis5"
+HKR, Ndi\Interfaces, UpperRange, , "ndis5"
+HKR, Ndi\Interfaces, LowerRange, , "ethernet"
+HKR, Ndi\Interfaces, DefLower, , "ethernet"
+HKR, Ndi\Install, ndis5, , "Neo.CopyFiles.Sys"
+HKR, Ndi\Params\NetworkAddress, ParamDesc, 0, %NetworkAddress%
+HKR, Ndi\Params\NetworkAddress, type, 0, "edit"
+HKR, Ndi\Params\NetworkAddress, LimitText, 0, "12"
+HKR, Ndi\Params\NetworkAddress, UpperCase, 0, "1"
+HKR, Ndi\Params\NetworkAddress, default, 0, %DefaultAddress%
+HKR, Ndi\Params\NetworkAddress, optional, 0, "0"
+HKR, Ndi\Params\MaxSpeed, ParamDesc, 0, %MaxSpeed%
+HKR, Ndi\Params\MaxSpeed, type, 0, "int"
+HKR, Ndi\Params\MaxSpeed, default, 0, "100"
+HKR, Ndi\Params\MaxSpeed, min, 0, "0"
+HKR, Ndi\Params\MaxSpeed, max, 0, "2000"
+HKR, Ndi\Params\MaxSpeed, step, 0, "1"
+HKR, Ndi\Params\MaxSpeed, Base, 0, "10"
+HKR, Ndi\Params\KeepLink, ParamDesc, 0, %KeepLink%
+HKR, Ndi\Params\KeepLink, type, 0, "enum"
+HKR, Ndi\Params\KeepLink\enum, "1", 0, %On%
+HKR, Ndi\Params\KeepLink\enum, "0", 0, %Off%
+HKR, Ndi\Params\KeepLink, default, 0, "0"
+
+
+[Neo.Service]
+DisplayName					= %Neo.Service.DispName%
+Description					= %Neo.Service.Desc%
+ServiceType					= 1
+StartType					= 3
+ErrorControl				= 1
+ServiceBinary				= %12%\Neo6_x64_VPN112.sys
+LoadOrderGroup				= NDIS
+
+[Neo.Reg]
+HKR, Ndi, Service, 0, Neo.Service.Name
+HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"
+HKR, Ndi\Interfaces, UpperRange, 0, "ndis5"
+
+[Neo.EventLog]
+HKR, , EventMessageFile, 0x00020000, "%11%\IoLogMsg.dll;%12%\Neo6_x64_VPN112.sys"
+HKR, , TypesSupported, 0x00010001, 7
+
+[Strings]
+CompanyName					= "SoftEther Corporation"
+DiskDescription				= "VPN Client Device Driver Install Disk"
+Neo.Service.Name			= "Neo_VPN112"
+Neo.Service.DispName		= "VPN Client Device Driver - VPN112"
+Neo.Service.Desc			= "VPN Client Adapter - VPN112"
+NeoAdapter.DeviceDesc		= "VPN Client Adapter - VPN112"
+Neo.EventLog.Name			= "Neo"
+NetworkAddress				= "MAC Address"
+DefaultAddress				= "000001000001"
+MaxSpeed					= "Indicate Speed (Mbps)"
+KeepLink					= "Keep Link"
+On							= "On"
+Off							= "Off"
+
+
+; Auto Generated 20150530_023445.938
+

BIN
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN112.sys


BIN
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN113.cat


+ 114 - 0
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN113.inf

@@ -0,0 +1,114 @@
+; VPN Client Device Driver for Windows 2000 and Greater
+; 
+; Copyright (c) SoftEther Corporation. All Rights Reserved.
+; http://www.softether.co.jp/
+; 
+; BUILD 9558
+
+[Version]
+Signature					= "$Windows NT$"
+Class						= Net
+ClassGUID					= {4D36E972-E325-11CE-BFC1-08002BE10318}
+Provider					= %CompanyName%
+DriverVer					= 05/29/2015, 4.16.0.9558
+CatalogFile.NT				= Neo6_x64_VPN113.cat
+
+[Manufacturer]
+%CompanyName% 				= SoftEther, NTamd64
+
+[SourceDisksNames]
+1=%DiskDescription%, "", , 
+
+[SourceDisksFiles]
+Neo6_x64_VPN113.sys	= 1
+
+[DestinationDirs]
+DefaultDestDir				= 12
+Neo.CopyFiles.Sys			= 12
+
+[Neo.CopyFiles.Sys]
+Neo6_x64_VPN113.sys, , , 2
+
+[SoftEther.NTamd64]
+%NeoAdapter.DeviceDesc%	= NeoAdapter.Install, NeoAdapter_VPN113
+
+[NeoAdapter.Install]
+Characteristics				= 0x1
+AddReg						= Neo.Reg, NeoAdapter.Ndi
+CopyFiles					= Neo.CopyFiles.Sys
+*IfType						= 6
+*MediaType					= 0
+*PhysicalMediaType			= 0
+
+[NeoAdapter.Install.Services]
+AddService					= %Neo.Service.Name%, 2, Neo.Service, Neo.EventLog, , %Neo, EventLog.Name%
+
+[NeoAdapter.Ndi]
+HKR, , NetworkAddress, 0, %DefaultAddress%
+HKR, Ndi, DeviceID, , "NeoAdapter_VPN113"
+HKR, , DevLoader, , ndis
+HKR, , DeviceVxDs, , Neo6_x64_VPN113.sys
+HKR, NDIS, LogDriverName, , "Neo_VPN113"
+HKR, NDIS, MajorNdisVersion, 1, 5
+HKR, NDIS, MinorNdisVersion, 1, 0
+HKR, Ndi\Interfaces, DefUpper, , "ndis5"
+HKR, Ndi\Interfaces, UpperRange, , "ndis5"
+HKR, Ndi\Interfaces, LowerRange, , "ethernet"
+HKR, Ndi\Interfaces, DefLower, , "ethernet"
+HKR, Ndi\Install, ndis5, , "Neo.CopyFiles.Sys"
+HKR, Ndi\Params\NetworkAddress, ParamDesc, 0, %NetworkAddress%
+HKR, Ndi\Params\NetworkAddress, type, 0, "edit"
+HKR, Ndi\Params\NetworkAddress, LimitText, 0, "12"
+HKR, Ndi\Params\NetworkAddress, UpperCase, 0, "1"
+HKR, Ndi\Params\NetworkAddress, default, 0, %DefaultAddress%
+HKR, Ndi\Params\NetworkAddress, optional, 0, "0"
+HKR, Ndi\Params\MaxSpeed, ParamDesc, 0, %MaxSpeed%
+HKR, Ndi\Params\MaxSpeed, type, 0, "int"
+HKR, Ndi\Params\MaxSpeed, default, 0, "100"
+HKR, Ndi\Params\MaxSpeed, min, 0, "0"
+HKR, Ndi\Params\MaxSpeed, max, 0, "2000"
+HKR, Ndi\Params\MaxSpeed, step, 0, "1"
+HKR, Ndi\Params\MaxSpeed, Base, 0, "10"
+HKR, Ndi\Params\KeepLink, ParamDesc, 0, %KeepLink%
+HKR, Ndi\Params\KeepLink, type, 0, "enum"
+HKR, Ndi\Params\KeepLink\enum, "1", 0, %On%
+HKR, Ndi\Params\KeepLink\enum, "0", 0, %Off%
+HKR, Ndi\Params\KeepLink, default, 0, "0"
+
+
+[Neo.Service]
+DisplayName					= %Neo.Service.DispName%
+Description					= %Neo.Service.Desc%
+ServiceType					= 1
+StartType					= 3
+ErrorControl				= 1
+ServiceBinary				= %12%\Neo6_x64_VPN113.sys
+LoadOrderGroup				= NDIS
+
+[Neo.Reg]
+HKR, Ndi, Service, 0, Neo.Service.Name
+HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"
+HKR, Ndi\Interfaces, UpperRange, 0, "ndis5"
+
+[Neo.EventLog]
+HKR, , EventMessageFile, 0x00020000, "%11%\IoLogMsg.dll;%12%\Neo6_x64_VPN113.sys"
+HKR, , TypesSupported, 0x00010001, 7
+
+[Strings]
+CompanyName					= "SoftEther Corporation"
+DiskDescription				= "VPN Client Device Driver Install Disk"
+Neo.Service.Name			= "Neo_VPN113"
+Neo.Service.DispName		= "VPN Client Device Driver - VPN113"
+Neo.Service.Desc			= "VPN Client Adapter - VPN113"
+NeoAdapter.DeviceDesc		= "VPN Client Adapter - VPN113"
+Neo.EventLog.Name			= "Neo"
+NetworkAddress				= "MAC Address"
+DefaultAddress				= "000001000001"
+MaxSpeed					= "Indicate Speed (Mbps)"
+KeepLink					= "Keep Link"
+On							= "On"
+Off							= "Off"
+
+
+; Auto Generated 20150530_023446.034
+

BIN
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN113.sys


BIN
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN114.cat


+ 114 - 0
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN114.inf

@@ -0,0 +1,114 @@
+; VPN Client Device Driver for Windows 2000 and Greater
+; 
+; Copyright (c) SoftEther Corporation. All Rights Reserved.
+; http://www.softether.co.jp/
+; 
+; BUILD 9558
+
+[Version]
+Signature					= "$Windows NT$"
+Class						= Net
+ClassGUID					= {4D36E972-E325-11CE-BFC1-08002BE10318}
+Provider					= %CompanyName%
+DriverVer					= 05/29/2015, 4.16.0.9558
+CatalogFile.NT				= Neo6_x64_VPN114.cat
+
+[Manufacturer]
+%CompanyName% 				= SoftEther, NTamd64
+
+[SourceDisksNames]
+1=%DiskDescription%, "", , 
+
+[SourceDisksFiles]
+Neo6_x64_VPN114.sys	= 1
+
+[DestinationDirs]
+DefaultDestDir				= 12
+Neo.CopyFiles.Sys			= 12
+
+[Neo.CopyFiles.Sys]
+Neo6_x64_VPN114.sys, , , 2
+
+[SoftEther.NTamd64]
+%NeoAdapter.DeviceDesc%	= NeoAdapter.Install, NeoAdapter_VPN114
+
+[NeoAdapter.Install]
+Characteristics				= 0x1
+AddReg						= Neo.Reg, NeoAdapter.Ndi
+CopyFiles					= Neo.CopyFiles.Sys
+*IfType						= 6
+*MediaType					= 0
+*PhysicalMediaType			= 0
+
+[NeoAdapter.Install.Services]
+AddService					= %Neo.Service.Name%, 2, Neo.Service, Neo.EventLog, , %Neo, EventLog.Name%
+
+[NeoAdapter.Ndi]
+HKR, , NetworkAddress, 0, %DefaultAddress%
+HKR, Ndi, DeviceID, , "NeoAdapter_VPN114"
+HKR, , DevLoader, , ndis
+HKR, , DeviceVxDs, , Neo6_x64_VPN114.sys
+HKR, NDIS, LogDriverName, , "Neo_VPN114"
+HKR, NDIS, MajorNdisVersion, 1, 5
+HKR, NDIS, MinorNdisVersion, 1, 0
+HKR, Ndi\Interfaces, DefUpper, , "ndis5"
+HKR, Ndi\Interfaces, UpperRange, , "ndis5"
+HKR, Ndi\Interfaces, LowerRange, , "ethernet"
+HKR, Ndi\Interfaces, DefLower, , "ethernet"
+HKR, Ndi\Install, ndis5, , "Neo.CopyFiles.Sys"
+HKR, Ndi\Params\NetworkAddress, ParamDesc, 0, %NetworkAddress%
+HKR, Ndi\Params\NetworkAddress, type, 0, "edit"
+HKR, Ndi\Params\NetworkAddress, LimitText, 0, "12"
+HKR, Ndi\Params\NetworkAddress, UpperCase, 0, "1"
+HKR, Ndi\Params\NetworkAddress, default, 0, %DefaultAddress%
+HKR, Ndi\Params\NetworkAddress, optional, 0, "0"
+HKR, Ndi\Params\MaxSpeed, ParamDesc, 0, %MaxSpeed%
+HKR, Ndi\Params\MaxSpeed, type, 0, "int"
+HKR, Ndi\Params\MaxSpeed, default, 0, "100"
+HKR, Ndi\Params\MaxSpeed, min, 0, "0"
+HKR, Ndi\Params\MaxSpeed, max, 0, "2000"
+HKR, Ndi\Params\MaxSpeed, step, 0, "1"
+HKR, Ndi\Params\MaxSpeed, Base, 0, "10"
+HKR, Ndi\Params\KeepLink, ParamDesc, 0, %KeepLink%
+HKR, Ndi\Params\KeepLink, type, 0, "enum"
+HKR, Ndi\Params\KeepLink\enum, "1", 0, %On%
+HKR, Ndi\Params\KeepLink\enum, "0", 0, %Off%
+HKR, Ndi\Params\KeepLink, default, 0, "0"
+
+
+[Neo.Service]
+DisplayName					= %Neo.Service.DispName%
+Description					= %Neo.Service.Desc%
+ServiceType					= 1
+StartType					= 3
+ErrorControl				= 1
+ServiceBinary				= %12%\Neo6_x64_VPN114.sys
+LoadOrderGroup				= NDIS
+
+[Neo.Reg]
+HKR, Ndi, Service, 0, Neo.Service.Name
+HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"
+HKR, Ndi\Interfaces, UpperRange, 0, "ndis5"
+
+[Neo.EventLog]
+HKR, , EventMessageFile, 0x00020000, "%11%\IoLogMsg.dll;%12%\Neo6_x64_VPN114.sys"
+HKR, , TypesSupported, 0x00010001, 7
+
+[Strings]
+CompanyName					= "SoftEther Corporation"
+DiskDescription				= "VPN Client Device Driver Install Disk"
+Neo.Service.Name			= "Neo_VPN114"
+Neo.Service.DispName		= "VPN Client Device Driver - VPN114"
+Neo.Service.Desc			= "VPN Client Adapter - VPN114"
+NeoAdapter.DeviceDesc		= "VPN Client Adapter - VPN114"
+Neo.EventLog.Name			= "Neo"
+NetworkAddress				= "MAC Address"
+DefaultAddress				= "000001000001"
+MaxSpeed					= "Indicate Speed (Mbps)"
+KeepLink					= "Keep Link"
+On							= "On"
+Off							= "Off"
+
+
+; Auto Generated 20150530_023446.129
+

BIN
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN114.sys


BIN
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN115.cat


+ 114 - 0
src/bin/hamcore/DriverPackages/Neo6_Win10/x64/Neo6_x64_VPN115.inf

@@ -0,0 +1,114 @@
+; VPN Client Device Driver for Windows 2000 and Greater
+; 
+; Copyright (c) SoftEther Corporation. All Rights Reserved.
+; http://www.softether.co.jp/
+; 
+; BUILD 9558
+
+[Version]
+Signature					= "$Windows NT$"
+Class						= Net
+ClassGUID					= {4D36E972-E325-11CE-BFC1-08002BE10318}
+Provider					= %CompanyName%
+DriverVer					= 05/29/2015, 4.16.0.9558
+CatalogFile.NT				= Neo6_x64_VPN115.cat
+
+[Manufacturer]
+%CompanyName% 				= SoftEther, NTamd64
+
+[SourceDisksNames]
+1=%DiskDescription%, "", , 
+
+[SourceDisksFiles]
+Neo6_x64_VPN115.sys	= 1
+
+[DestinationDirs]
+DefaultDestDir				= 12
+Neo.CopyFiles.Sys			= 12
+
+[Neo.CopyFiles.Sys]
+Neo6_x64_VPN115.sys, , , 2
+
+[SoftEther.NTamd64]
+%NeoAdapter.DeviceDesc%	= NeoAdapter.Install, NeoAdapter_VPN115
+
+[NeoAdapter.Install]
+Characteristics				= 0x1
+AddReg						= Neo.Reg, NeoAdapter.Ndi
+CopyFiles					= Neo.CopyFiles.Sys
+*IfType						= 6
+*MediaType					= 0
+*PhysicalMediaType			= 0
+
+[NeoAdapter.Install.Services]
+AddService					= %Neo.Service.Name%, 2, Neo.Service, Neo.EventLog, , %Neo, EventLog.Name%
+
+[NeoAdapter.Ndi]
+HKR, , NetworkAddress, 0, %DefaultAddress%
+HKR, Ndi, DeviceID, , "NeoAdapter_VPN115"
+HKR, , DevLoader, , ndis
+HKR, , DeviceVxDs, , Neo6_x64_VPN115.sys
+HKR, NDIS, LogDriverName, , "Neo_VPN115"
+HKR, NDIS, MajorNdisVersion, 1, 5
+HKR, NDIS, MinorNdisVersion, 1, 0
+HKR, Ndi\Interfaces, DefUpper, , "ndis5"
+HKR, Ndi\Interfaces, UpperRange, , "ndis5"
+HKR, Ndi\Interfaces, LowerRange, , "ethernet"
+HKR, Ndi\Interfaces, DefLower, , "ethernet"
+HKR, Ndi\Install, ndis5, , "Neo.CopyFiles.Sys"
+HKR, Ndi\Params\NetworkAddress, ParamDesc, 0, %NetworkAddress%
+HKR, Ndi\Params\NetworkAddress, type, 0, "edit"
+HKR, Ndi\Params\NetworkAddress, LimitText, 0, "12"
+HKR, Ndi\Params\NetworkAddress, UpperCase, 0, "1"
+HKR, Ndi\Params\NetworkAddress, default, 0, %DefaultAddress%
+HKR, Ndi\Params\NetworkAddress, optional, 0, "0"
+HKR, Ndi\Params\MaxSpeed, ParamDesc, 0, %MaxSpeed%
+HKR, Ndi\Params\MaxSpeed, type, 0, "int"
+HKR, Ndi\Params\MaxSpeed, default, 0, "100"
+HKR, Ndi\Params\MaxSpeed, min, 0, "0"
+HKR, Ndi\Params\MaxSpeed, max, 0, "2000"
+HKR, Ndi\Params\MaxSpeed, step, 0, "1"
+HKR, Ndi\Params\MaxSpeed, Base, 0, "10"
+HKR, Ndi\Params\KeepLink, ParamDesc, 0, %KeepLink%
+HKR, Ndi\Params\KeepLink, type, 0, "enum"
+HKR, Ndi\Params\KeepLink\enum, "1", 0, %On%
+HKR, Ndi\Params\KeepLink\enum, "0", 0, %Off%
+HKR, Ndi\Params\KeepLink, default, 0, "0"
+
+
+[Neo.Service]
+DisplayName					= %Neo.Service.DispName%
+Description					= %Neo.Service.Desc%
+ServiceType					= 1
+StartType					= 3
+ErrorControl				= 1
+ServiceBinary				= %12%\Neo6_x64_VPN115.sys
+LoadOrderGroup				= NDIS
+
+[Neo.Reg]
+HKR, Ndi, Service, 0, Neo.Service.Name
+HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"
+HKR, Ndi\Interfaces, UpperRange, 0, "ndis5"
+
+[Neo.EventLog]
+HKR, , EventMessageFile, 0x00020000, "%11%\IoLogMsg.dll;%12%\Neo6_x64_VPN115.sys"
+HKR, , TypesSupported, 0x00010001, 7
+
+[Strings]
+CompanyName					= "SoftEther Corporation"
+DiskDescription				= "VPN Client Device Driver Install Disk"
+Neo.Service.Name			= "Neo_VPN115"
+Neo.Service.DispName		= "VPN Client Device Driver - VPN115"
+Neo.Service.Desc			= "VPN Client Adapter - VPN115"
+NeoAdapter.DeviceDesc		= "VPN Client Adapter - VPN115"
+Neo.EventLog.Name			= "Neo"
+NetworkAddress				= "MAC Address"
+DefaultAddress				= "000001000001"
+MaxSpeed					= "Indicate Speed (Mbps)"
+KeepLink					= "Keep Link"
+On							= "On"
+Off							= "Off"
+
+
+; Auto Generated 20150530_023446.223
+

Some files were not shown because too many files changed in this diff