summaryrefslogtreecommitdiffhomepage
path: root/windows/driverlogic/src/driverlogic.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'windows/driverlogic/src/driverlogic.cpp')
-rw-r--r--windows/driverlogic/src/driverlogic.cpp8
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;