Fix some corner-cases (no .inf file in provided directory when creating driver list, or no suitable driver when destroying driver list) Modified: trunk/reactos/lib/setupapi/devinst.c _____
Modified: trunk/reactos/lib/setupapi/devinst.c --- trunk/reactos/lib/setupapi/devinst.c 2005-10-26 12:47:22 UTC (rev 18776) +++ trunk/reactos/lib/setupapi/devinst.c 2005-10-26 18:19:20 UTC (rev 18777) @@ -4314,6 +4314,14 @@
Buffer, RequiredSize, &RequiredSize); } + if (!Result && GetLastError() == ERROR_FILE_NOT_FOUND) + { + /* No .inf file in specified directory. So, we should + * success as we created an empty driver info list. + */ + ret = TRUE; + goto done; + } if (Result) { LPCWSTR filename; @@ -4604,18 +4612,6 @@ if (!DeviceInfoData) /* Fall back to destroying class driver list */ DriverType = SPDIT_CLASSDRIVER; - if (DriverType == SPDIT_CLASSDRIVER) - { - if (!(InstallParams.Flags & DI_DIDCLASS)) - /* The list was not created */ - goto done; - } - else if (DriverType == SPDIT_COMPATDRIVER) - { - if (!(InstallParams.Flags & DI_DIDCOMPAT)) - /* The list was not created */ - goto done; - }
if (DriverType == SPDIT_CLASSDRIVER) {