Devicecleanup.exe -
int RemoveAllNonPresent() HDEVINFO hDevInfo = SetupDiGetClassDevs(NULL, NULL, NULL, DIGCF_ALLCLASSES); if (hDevInfo == INVALID_HANDLE_VALUE) std::wcerr << L"Failed to get device list.\n"; return 1;
if (matches && IsNonPresentDevice(devInst)) std::wcout << L"Removing: " << instanceId << std::endl; if (RemoveDevice(devInst)) removed++; DeviceCleanup.exe
else if (arg == L"/verbose") g_verbose = true; if (hDevInfo == INVALID_HANDLE_VALUE) std::wcerr <
while (SetupDiEnumDeviceInfo(hDevInfo, idx++, &devInfoData)) DEVINST devInst = devInfoData.DevInst; L"Failed to get device list.\n"
else if (arg == L"/remove") g_action = ACTION_REMOVE_ONE; if (i + 1 < argc) g_targetId = argv[++i];
int RemoveById(const std::wstring& id) HDEVINFO hDevInfo = SetupDiGetClassDevs(NULL, NULL, NULL, DIGCF_ALLCLASSES); if (hDevInfo == INVALID_HANDLE_VALUE) std::wcerr << L"Failed to get device list.\n"; return 1;