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