diff --git a/dll/win32/setupapi/interface.c b/dll/win32/setupapi/interface.c index 09b84d519a4..6a627d1118e 100644 --- a/dll/win32/setupapi/interface.c +++ b/dll/win32/setupapi/interface.c @@ -212,8 +212,12 @@ SETUP_CreateInterfaceList( /* Read SymbolicLink value */ rc = RegQueryValueExW(hReferenceKey, SymbolicLink, NULL, &dwRegType, NULL, &dwLength); - if (rc != ERROR_SUCCESS ) - goto cleanup; + if (rc != ERROR_SUCCESS) + { + /* Skip device interface with invalid reference value (i.e. interface not actually available for this device) */ + RegCloseKey(hReferenceKey); + continue; + } if (dwRegType != REG_SZ) { rc = ERROR_GEN_FAILURE;