Alexandre Julliard : setupapi: Replace SystemRoot when registering dlls.

Alexandre Julliard julliard at winehq.org
Fri Apr 9 14:53:20 CDT 2021


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

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Fri Apr  9 20:27:20 2021 +0200

setupapi: Replace SystemRoot when registering dlls.

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

---

 dlls/setupapi/fakedll.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/dlls/setupapi/fakedll.c b/dlls/setupapi/fakedll.c
index 552bec27f31..852cef3d54f 100644
--- a/dlls/setupapi/fakedll.c
+++ b/dlls/setupapi/fakedll.c
@@ -843,6 +843,7 @@ static void register_fake_dll( const WCHAR *name, const void *data, size_t size,
     HRESULT hr = S_OK;
     HMODULE module = (HMODULE)((ULONG_PTR)data | 1);
     struct dll_data dll_data = { delay_copy, name, 0 };
+    WCHAR buffer[MAX_PATH];
     const WCHAR *p;
 
     if (!(p = wcsrchr( name, '\\' ))) p = name;
@@ -873,6 +874,8 @@ static void register_fake_dll( const WCHAR *name, const void *data, size_t size,
     TRACE( "registering %s\n", debugstr_w(name) );
     IRegistrar_ClearReplacements( registrar );
     IRegistrar_AddReplacement( registrar, L"MODULE", name );
+    GetEnvironmentVariableW( L"SystemRoot", buffer, ARRAY_SIZE(buffer) );
+    IRegistrar_AddReplacement( registrar, L"SystemRoot", buffer );
     EnumResourceNamesW( module, L"WINE_REGISTRY", register_resource, (LONG_PTR)&hr );
     if (FAILED(hr)) ERR( "failed to register %s: %x\n", debugstr_w(name), hr );
 }




More information about the wine-cvs mailing list