summaryrefslogtreecommitdiffhomepage
path: root/windows/nsis-plugins/src/driverlogic/context.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'windows/nsis-plugins/src/driverlogic/context.cpp')
-rw-r--r--windows/nsis-plugins/src/driverlogic/context.cpp29
1 files changed, 21 insertions, 8 deletions
diff --git a/windows/nsis-plugins/src/driverlogic/context.cpp b/windows/nsis-plugins/src/driverlogic/context.cpp
index e65900582c..2fe33e22cd 100644
--- a/windows/nsis-plugins/src/driverlogic/context.cpp
+++ b/windows/nsis-plugins/src/driverlogic/context.cpp
@@ -274,15 +274,28 @@ std::set<Context::NetworkAdapter> GetTapAdapters()
// Construct NetworkAdapter
//
- const std::wstring guid = GetNetCfgInstanceId(devInfo, devInfoData);
- GUID guidObj = common::Guid::FromString(guid);
+ try
+ {
+ const std::wstring guid = GetNetCfgInstanceId(devInfo, devInfoData);
+ GUID guidObj = common::Guid::FromString(guid);
- adapters.emplace(Context::NetworkAdapter(
- guid,
- GetDeviceStringProperty(devInfo, &devInfoData, &DEVPKEY_Device_DriverDesc),
- nci.getConnectionName(guidObj),
- GetDeviceInstanceId(devInfo, &devInfoData)
- ));
+ adapters.emplace(Context::NetworkAdapter(
+ guid,
+ GetDeviceStringProperty(devInfo, &devInfoData, &DEVPKEY_Device_DriverDesc),
+ nci.getConnectionName(guidObj),
+ GetDeviceInstanceId(devInfo, &devInfoData)
+ ));
+ }
+ catch (const std::exception &e)
+ {
+ //
+ // Log exception and skip this adapter
+ //
+
+ std::string msg = "Skipping TAP adapter due to exception caught while iterating: ";
+ msg.append(e.what());
+ PluginLog(std::wstring(msg.begin(), msg.end()));
+ }
}
return adapters;