Added patch to set ERROR_DLL_NOT_FOUND as error code for Win 9X instead of ERROR_MOD_NOT_FOUND in load_library.

This commit is contained in:
Sebastian Lackner 2016-03-02 17:16:13 +01:00
parent a52c90b145
commit 891bd073d8
3 changed files with 46 additions and 0 deletions

View File

@ -0,0 +1,29 @@
From 9d075c0f5c958becf8fe661b8c2877115501f044 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Tue, 1 Mar 2016 20:11:57 +0100
Subject: kernel32: Set ERROR_DLL_NOT_FOUND as error code for Win 9X instead of
ERROR_MOD_NOT_FOUND.
---
dlls/kernel32/module.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/dlls/kernel32/module.c b/dlls/kernel32/module.c
index dac66c1..badfe1d 100644
--- a/dlls/kernel32/module.c
+++ b/dlls/kernel32/module.c
@@ -948,7 +948,10 @@ static HMODULE load_library( const UNICODE_STRING *libname, DWORD flags )
if (nts != STATUS_SUCCESS)
{
hModule = 0;
- SetLastError( RtlNtStatusToDosError( nts ) );
+ if (nts == STATUS_DLL_NOT_FOUND && (GetVersion() & 0x80000000))
+ SetLastError( ERROR_DLL_NOT_FOUND );
+ else
+ SetLastError( RtlNtStatusToDosError( nts ) );
}
done:
HeapFree( GetProcessHeap(), 0, load_path );
--
2.7.1

View File

@ -0,0 +1 @@
Fixes: Set ERROR_DLL_NOT_FOUND as error code for Win 9X instead of ERROR_MOD_NOT_FOUND in load_library

View File

@ -165,6 +165,7 @@ patch_enable_all ()
enable_kernel32_COMSPEC="$1"
enable_kernel32_CopyFileEx="$1"
enable_kernel32_Cwd_Startup_Info="$1"
enable_kernel32_ERROR_DLL_NOT_FOUND="$1"
enable_kernel32_FindFirstFile="$1"
enable_kernel32_FreeUserPhysicalPages="$1"
enable_kernel32_GetCurrentPackageFamilyName="$1"
@ -650,6 +651,9 @@ patch_enable ()
kernel32-Cwd_Startup_Info)
enable_kernel32_Cwd_Startup_Info="$2"
;;
kernel32-ERROR_DLL_NOT_FOUND)
enable_kernel32_ERROR_DLL_NOT_FOUND="$2"
;;
kernel32-FindFirstFile)
enable_kernel32_FindFirstFile="$2"
;;
@ -4017,6 +4021,18 @@ if test "$enable_kernel32_Cwd_Startup_Info" -eq 1; then
) >> "$patchlist"
fi
# Patchset kernel32-ERROR_DLL_NOT_FOUND
# |
# | Modified files:
# | * dlls/kernel32/module.c
# |
if test "$enable_kernel32_ERROR_DLL_NOT_FOUND" -eq 1; then
patch_apply kernel32-ERROR_DLL_NOT_FOUND/0001-kernel32-Set-ERROR_DLL_NOT_FOUND-as-error-code-for-W.patch
(
echo '+ { "Michael Müller", "kernel32: Set ERROR_DLL_NOT_FOUND as error code for Win 9X instead of ERROR_MOD_NOT_FOUND.", 1 },';
) >> "$patchlist"
fi
# Patchset kernel32-FindFirstFile
# |
# | This patchset fixes the following Wine bugs: