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)
{
Show replies by date