[VFD] Add support for installing driver from System32\drivers.
authorPierre Schweitzer <pierre@reactos.org>
Sat, 23 Dec 2017 08:34:34 +0000 (09:34 +0100)
committerPierre Schweitzer <pierre@reactos.org>
Sat, 23 Dec 2017 08:34:34 +0000 (09:34 +0100)
Patch by Doug Lyons.

CORE-14090

modules/rosapps/lib/vfdlib/vfdctl.c

index eb09da8..21672b9 100644 (file)
@@ -255,6 +255,10 @@ DWORD WINAPI VfdInstallDriver(
        DWORD                   len;
        DWORD                   ret = ERROR_SUCCESS;
 
        DWORD                   len;
        DWORD                   ret = ERROR_SUCCESS;
 
+#ifdef __REACTOS__
+       CHAR                    full_file_path[MAX_PATH];
+#endif
+
        //      get SystemRoot directory path
 
 //     len = GetEnvironmentVariable(
        //      get SystemRoot directory path
 
 //     len = GetEnvironmentVariable(
@@ -270,6 +274,12 @@ DWORD WINAPI VfdInstallDriver(
 
        inst_path = &system_dir[len];
 
 
        inst_path = &system_dir[len];
 
+#ifdef __REACTOS__
+       strcpy(full_file_path, system_dir);
+       strcat(full_file_path, VFD_INSTALL_DIRECTORY);
+       strcat(full_file_path, VFD_DRIVER_FILENAME);
+#endif
+
 #ifdef VFD_EMBED_DRIVER
        //
        //      use embedded driver file
 #ifdef VFD_EMBED_DRIVER
        //
        //      use embedded driver file
@@ -342,6 +352,14 @@ DWORD WINAPI VfdInstallDriver(
                }
        }
 
                }
        }
 
+#ifdef __REACTOS__
+       //      Check install directory & file exist or use full_file_path
+
+       if (GetFileAttributesA(file_path) == INVALID_FILE_ATTRIBUTES) {
+               strcpy(file_path, full_file_path);
+       }
+#endif
+
        //      Check if the file is a valid Virtual Floppy driver
 
        ret = VfdCheckDriverFile(file_path, NULL);
        //      Check if the file is a valid Virtual Floppy driver
 
        ret = VfdCheckDriverFile(file_path, NULL);