diff options
| author | David Lönnhager <david.l@mullvad.net> | 2020-02-04 10:42:34 +0100 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2020-02-04 14:52:42 +0100 |
| commit | 83038a2319fc44f8d909be45be51a4d7a450d9c7 (patch) | |
| tree | eb0e98bd577450a8a6476ac3d212cbfdbfdc3f24 /windows/driverlogic/src/driverlogic.cpp | |
| parent | b9eb60830d2356aef557de14a5be085383f30edc (diff) | |
| download | mullvadvpn-83038a2319fc44f8d909be45be51a4d7a450d9c7.tar.xz mullvadvpn-83038a2319fc44f8d909be45be51a4d7a450d9c7.zip | |
Ignore removed devices without device instance ID in driverlogic
Diffstat (limited to 'windows/driverlogic/src/driverlogic.cpp')
| -rw-r--r-- | windows/driverlogic/src/driverlogic.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/windows/driverlogic/src/driverlogic.cpp b/windows/driverlogic/src/driverlogic.cpp index fc9fc69bc1..7798603ec9 100644 --- a/windows/driverlogic/src/driverlogic.cpp +++ b/windows/driverlogic/src/driverlogic.cpp @@ -14,6 +14,7 @@ #include <devguid.h> #include <devpkey.h> #include <newdev.h> +#include <cfgmgr32.h> namespace @@ -259,6 +260,13 @@ std::wstring GetNetCfgInstanceId(HDEVINFO devInfo, const SP_DEVINFO_DATA &devInf void DeleteDevice(HDEVINFO devInfo, SP_DEVINFO_DATA * devInfoData) { + wchar_t devId[MAX_DEVICE_ID_LEN]; + if (CR_SUCCESS != CM_Get_Device_IDW(devInfoData->DevInst, devId, sizeof(devId) / sizeof(devId[0]), 0)) + { + // skip + return; + } + SP_REMOVEDEVICE_PARAMS rmdParams = { 0 }; rmdParams.ClassInstallHeader.cbSize = sizeof(SP_CLASSINSTALL_HEADER); rmdParams.ClassInstallHeader.InstallFunction = DIF_REMOVE; |
