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