Module: wine Branch: master Commit: 53ffeb67eeee09a53c07ca3ec82db3cad9339359 URL: https://source.winehq.org/git/wine.git/?a=commit;h=53ffeb67eeee09a53c07ca3ec...
Author: Alexandre Julliard julliard@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@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 );