Try to remove the tun device when restarting the service in Windows

https://github.com/2dust/v2rayN/pull/6561
This commit is contained in:
2dust
2025-01-30 10:46:04 +08:00
parent c0f8b6b84c
commit 6c5011ad68
3 changed files with 38 additions and 38 deletions

View File

@@ -1,4 +1,7 @@
using Microsoft.Win32;
using System.Diagnostics;
using System.Security.Cryptography;
using System.Text;
using Microsoft.Win32;
namespace ServiceLib.Common
{
@@ -50,5 +53,24 @@ namespace ServiceLib.Common
regKey?.Close();
}
}
}
}
public static async Task RemoveTunDevice()
{
try
{
var sum = MD5.HashData(Encoding.UTF8.GetBytes("wintunsingbox_tun"));
var guid = new Guid(sum);
var pnpUtilPath = @"C:\Windows\System32\pnputil.exe";
var arg = $$""" /remove-device "SWD\Wintun\{{{guid}}}" """;
// Try to remove the device
await Utils.GetCliWrapOutput(pnpUtilPath, arg);
}
catch (Exception ex)
{
Logging.SaveLog(_tag, ex);
}
}
}
}