diff options
Diffstat (limited to 'windows/driverlogic/src/driverlogic.cpp')
| -rw-r--r-- | windows/driverlogic/src/driverlogic.cpp | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/windows/driverlogic/src/driverlogic.cpp b/windows/driverlogic/src/driverlogic.cpp index 25487d8481..08f0e97883 100644 --- a/windows/driverlogic/src/driverlogic.cpp +++ b/windows/driverlogic/src/driverlogic.cpp @@ -34,7 +34,8 @@ constexpr std::chrono::milliseconds REGISTRY_GET_TIMEOUT_MS{ 10000 }; enum ReturnCodes { GENERAL_SUCCESS = 0, - GENERAL_ERROR = -1 + GENERAL_ERROR = -1, + ADAPTER_NOT_FOUND = -2 }; struct NetworkAdapter @@ -917,6 +918,24 @@ int wmain(int argc, const wchar_t * argv[], const wchar_t * []) RemoveNetAdapterByAlias(hardwareId, baseName); } + else if (0 == _wcsicmp(argv[1], L"device-exists")) + { + if (4 != argc) + { + goto INVALID_ARGUMENTS; + } + + const wchar_t *hardwareId = argv[2]; + const wchar_t *baseName = argv[3]; + + const auto tapAdapters = GetNetworkAdapters(hardwareId); + const auto adapter = FindAdapterByAlias(tapAdapters, baseName); + + if (!adapter.has_value()) + { + return ADAPTER_NOT_FOUND; + } + } else if (0 == _wcsicmp(argv[1], L"remove")) { if (3 != argc) |
