From 427cba82bdcd20467386c68cf10cc60167a1b708 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herv=C3=A9=20Poussineau?= Date: Mon, 29 May 2006 09:36:26 +0000 Subject: [PATCH] Don't stop the search after the first driver found. Next ones may be better svn path=/trunk/; revision=22102 --- reactos/dll/win32/newdev/newdev.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/reactos/dll/win32/newdev/newdev.c b/reactos/dll/win32/newdev/newdev.c index 208125e762b..dd039603212 100644 --- a/reactos/dll/win32/newdev/newdev.c +++ b/reactos/dll/win32/newdev/newdev.c @@ -54,12 +54,12 @@ UpdateDriverForPlugAndPlayDevicesW( /* FIXME: InstallFlags bRebootRequired ignored! */ /* Check flags */ - /* FIXME: if (InstallFlags & ~(INSTALLFLAG_FORCE | INSTALLFLAG_READONLY | INSTALLFLAG_NONINTERACTIVE)) + if (InstallFlags & ~(INSTALLFLAG_FORCE | INSTALLFLAG_READONLY | INSTALLFLAG_NONINTERACTIVE)) { DPRINT("Unknown flags: 0x%08lx\n", InstallFlags & ~(INSTALLFLAG_FORCE | INSTALLFLAG_READONLY | INSTALLFLAG_NONINTERACTIVE)); SetLastError(ERROR_INVALID_FLAGS); goto cleanup; - }*/ + } /* Enumerate all devices of the system */ DevInstData.hDevInfo = SetupDiGetClassDevsW(NULL, NULL, hwndParent, DIGCF_ALLCLASSES | DIGCF_PRESENT); @@ -374,7 +374,7 @@ SearchDriverRecursive( if (SearchDriverRecursive(DevInstData, FullPath)) { retval = TRUE; - break; + /* We continue the search for a better driver */ } } else @@ -392,14 +392,13 @@ SearchDriverRecursive( if (SearchDriver(DevInstData, DirPath, NULL)) { retval = TRUE; - goto cleanup; + /* We continue the search for a better driver */ } } } } -cleanup: if (hFindFile != INVALID_HANDLE_VALUE) FindClose(hFindFile); return retval;