Commit aa51aee1 authored by Brendan Shanks's avatar Brendan Shanks Committed by Alexandre Julliard

ntdll: Enable WoW64 filesystem redirection when loading libraries.

This matches the behavior seen on Windows 7/2008R2 and newer. Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47912Signed-off-by: 's avatarBrendan Shanks <bshanks@codeweavers.com> Signed-off-by: 's avatarAlexandre Julliard <julliard@winehq.org>
parent a7269a10
......@@ -3822,7 +3822,7 @@ static void test_wow64_redirection_for_dll(const char *libname)
if (!GetModuleHandleA(libname))
{
lib = LoadLibraryExA(libname, NULL, 0);
todo_wine ok (broken(lib == NULL) /* Vista/2008 */ ||
ok (broken(lib == NULL) /* Vista/2008 */ ||
lib != NULL, "Loading %s should succeed with WOW64 redirection disabled\n", libname);
if (lib)
{
......
......@@ -2881,6 +2881,7 @@ static NTSTATUS find_dll_file( const WCHAR *load_path, const WCHAR *libname,
{
WCHAR *ext, *dllname;
NTSTATUS status;
ULONG wow64_old_value = 0;
/* first append .dll if needed */
......@@ -2897,6 +2898,9 @@ static NTSTATUS find_dll_file( const WCHAR *load_path, const WCHAR *libname,
libname = dllname;
}
/* Win 7/2008R2 and up seem to re-enable WoW64 FS redirection when loading libraries */
if (is_wow64) RtlWow64EnableFsRedirectionEx( 0, &wow64_old_value );
nt_name->Buffer = NULL;
if (!contains_path( libname ))
......@@ -2930,6 +2934,7 @@ static NTSTATUS find_dll_file( const WCHAR *load_path, const WCHAR *libname,
done:
RtlFreeHeap( GetProcessHeap(), 0, dllname );
if (wow64_old_value) RtlWow64EnableFsRedirectionEx( 1, &wow64_old_value );
return status;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment