Alexandre Julliard : winedevice: Add the drivers directory to the dll search path.

Alexandre Julliard julliard at winehq.org
Mon Mar 29 16:00:04 CDT 2021


Module: wine
Branch: master
Commit: 53ffeb67eeee09a53c07ca3ec82db3cad9339359
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=53ffeb67eeee09a53c07ca3ec82db3cad9339359

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Mon Mar 29 16:00:29 2021 +0200

winedevice: Add the drivers directory to the dll search path.

Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/ntoskrnl.exe/ntoskrnl.c | 2 +-
 programs/winedevice/device.c | 5 +++++
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c
index 066e87cf977..685f7d4345b 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.c
+++ b/dlls/ntoskrnl.exe/ntoskrnl.c
@@ -3691,7 +3691,7 @@ static HMODULE load_driver( const WCHAR *driver_name, const UNICODE_STRING *keyn
 
     TRACE( "loading driver %s\n", wine_dbgstr_w(str) );
 
-    module = LoadLibraryExW( str, 0, LOAD_WITH_ALTERED_SEARCH_PATH );
+    module = LoadLibraryExW( str, 0, LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR | LOAD_LIBRARY_SEARCH_DEFAULT_DIRS );
 
     if (module && load_image_notify_routine_count)
     {
diff --git a/programs/winedevice/device.c b/programs/winedevice/device.c
index c591d743337..3acc5e8a799 100644
--- a/programs/winedevice/device.c
+++ b/programs/winedevice/device.c
@@ -115,6 +115,7 @@ static DWORD WINAPI service_handler( DWORD ctrl, DWORD event_type, LPVOID event_
 
 static void WINAPI ServiceMain( DWORD argc, LPWSTR *argv )
 {
+    WCHAR driver_dir[MAX_PATH];
     const WCHAR *service_group = (argc >= 2) ? argv[1] : argv[0];
 
     if (!(stop_event = CreateEventW( NULL, TRUE, FALSE, NULL )))
@@ -124,6 +125,10 @@ static void WINAPI ServiceMain( DWORD argc, LPWSTR *argv )
     if (!(service_handle = RegisterServiceCtrlHandlerExW( winedeviceW, service_handler, (void *)service_group )))
         return;
 
+    GetSystemDirectoryW( driver_dir, MAX_PATH );
+    wcscat( driver_dir, L"\\drivers" );
+    AddDllDirectory( driver_dir );
+
     TRACE( "starting service group %s\n", wine_dbgstr_w(service_group) );
     set_service_status( service_handle, SERVICE_RUNNING,
                         SERVICE_ACCEPT_STOP | SERVICE_ACCEPT_SHUTDOWN );




More information about the wine-cvs mailing list