Devicecleanup.exe -

if (matches && IsNonPresentDevice(devInst)) std::wcout << L"Removing: " << instanceId << std::endl; if (RemoveDevice(devInst)) removed++;

SP_DEVINFO_DATA devInfoData; devInfoData.cbSize = sizeof(SP_DEVINFO_DATA); DWORD idx = 0; int removed = 0; DeviceCleanup.exe

bool IsNonPresentDevice(DEVINST devInst) ULONG status = 0, problem = 0; if (CM_Get_DevNode_Status(&status, &problem, devInst, 0) != CR_SUCCESS) return true; // Cannot query status -> treat as problematic if (matches && IsNonPresentDevice(devInst)) std::wcout &lt

bool matches = (id == instanceId);