https://git.reactos.org/?p=reactos.git;a=commitdiff;h=fc921423f35f442d419246b1dbbaf1e3f651f978

commit fc921423f35f442d419246b1dbbaf1e3f651f978
Author: Pierre Schweitzer <[email protected]>
AuthorDate: Sat Dec 23 09:34:34 2017 +0100

    [VFD] Add support for installing driver from System32\drivers.
    
    Patch by Doug Lyons.
    
    CORE-14090
---
 modules/rosapps/lib/vfdlib/vfdctl.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/modules/rosapps/lib/vfdlib/vfdctl.c 
b/modules/rosapps/lib/vfdlib/vfdctl.c
index eb09da84d3..21672b9662 100644
--- a/modules/rosapps/lib/vfdlib/vfdctl.c
+++ b/modules/rosapps/lib/vfdlib/vfdctl.c
@@ -255,6 +255,10 @@ DWORD WINAPI VfdInstallDriver(
        DWORD                   len;
        DWORD                   ret = ERROR_SUCCESS;
 
+#ifdef __REACTOS__
+       CHAR                    full_file_path[MAX_PATH];
+#endif
+
        //      get SystemRoot directory path
 
 //     len = GetEnvironmentVariable(
@@ -270,6 +274,12 @@ DWORD WINAPI VfdInstallDriver(
 
        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
@@ -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);

Reply via email to