mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-11-21 16:46:54 -08:00
Rebase against 3c2db20f66806074b047b0b3c76aa86ad79e3175.
This commit is contained in:
parent
15f4220e49
commit
6b24c39d32
@ -1,4 +1,4 @@
|
||||
From 676ef7076ef33a21649a07acdc5e6e7fee761165 Mon Sep 17 00:00:00 2001
|
||||
From 0a07ca826c7991b6c4e2455ff374e6fee4f93b93 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Mon, 3 Apr 2017 05:30:27 +0200
|
||||
Subject: [PATCH] ntdll: Implement HashLinks field in LDR module data.
|
||||
@ -10,7 +10,7 @@ Subject: [PATCH] ntdll: Implement HashLinks field in LDR module data.
|
||||
3 files changed, 141 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c
|
||||
index 861fc321729..28b0edacd0a 100644
|
||||
index 1db68a191a3..bec46088518 100644
|
||||
--- a/dlls/kernel32/tests/loader.c
|
||||
+++ b/dlls/kernel32/tests/loader.c
|
||||
@@ -30,6 +30,7 @@
|
||||
@ -21,8 +21,8 @@ index 861fc321729..28b0edacd0a 100644
|
||||
#include "wine/test.h"
|
||||
#include "delayloadhandler.h"
|
||||
|
||||
@@ -4003,6 +4004,79 @@ static void test_LoadPackagedLibrary(void)
|
||||
h, GetLastError());
|
||||
@@ -4031,6 +4032,79 @@ static void test_Wow64Transition(void)
|
||||
debugstr_wn(name->SectionFileName.Buffer, name->SectionFileName.Length / sizeof(WCHAR)));
|
||||
}
|
||||
|
||||
+static inline WCHAR toupperW(WCHAR c)
|
||||
@ -101,7 +101,7 @@ index 861fc321729..28b0edacd0a 100644
|
||||
START_TEST(loader)
|
||||
{
|
||||
int argc;
|
||||
@@ -4075,6 +4149,7 @@ START_TEST(loader)
|
||||
@@ -4103,6 +4177,7 @@ START_TEST(loader)
|
||||
test_InMemoryOrderModuleList();
|
||||
test_LoadPackagedLibrary();
|
||||
test_wow64_redirection();
|
||||
@ -110,10 +110,10 @@ index 861fc321729..28b0edacd0a 100644
|
||||
test_dll_file( "kernel32.dll" );
|
||||
test_dll_file( "advapi32.dll" );
|
||||
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
|
||||
index dad7bae6ccf..0727d4d15f5 100644
|
||||
index 6c86e6b2e6c..b8d6adaf390 100644
|
||||
--- a/dlls/ntdll/loader.c
|
||||
+++ b/dlls/ntdll/loader.c
|
||||
@@ -115,6 +115,9 @@ struct file_id
|
||||
@@ -114,6 +114,9 @@ struct file_id
|
||||
BYTE ObjectId[16];
|
||||
};
|
||||
|
||||
@ -123,7 +123,7 @@ index dad7bae6ccf..0727d4d15f5 100644
|
||||
/* internal representation of loaded modules */
|
||||
typedef struct _wine_modref
|
||||
{
|
||||
@@ -455,6 +458,52 @@ static void call_ldr_notifications( ULONG reason, LDR_DATA_TABLE_ENTRY *module )
|
||||
@@ -453,6 +456,52 @@ static void call_ldr_notifications( ULONG reason, LDR_DATA_TABLE_ENTRY *module )
|
||||
}
|
||||
}
|
||||
|
||||
@ -176,7 +176,7 @@ index dad7bae6ccf..0727d4d15f5 100644
|
||||
/*************************************************************************
|
||||
* get_modref
|
||||
*
|
||||
@@ -1197,7 +1246,12 @@ static WINE_MODREF *alloc_module( HMODULE hModule, const UNICODE_STRING *nt_name
|
||||
@@ -1195,7 +1244,12 @@ static WINE_MODREF *alloc_module( HMODULE hModule, const UNICODE_STRING *nt_name
|
||||
&wm->ldr.InLoadOrderLinks);
|
||||
InsertTailList(&NtCurrentTeb()->Peb->LdrData->InMemoryOrderModuleList,
|
||||
&wm->ldr.InMemoryOrderLinks);
|
||||
@ -189,7 +189,7 @@ index dad7bae6ccf..0727d4d15f5 100644
|
||||
|
||||
if (!(nt->OptionalHeader.DllCharacteristics & IMAGE_DLLCHARACTERISTICS_NX_COMPAT))
|
||||
{
|
||||
@@ -1904,6 +1958,7 @@ static NTSTATUS build_module( LPCWSTR load_path, const UNICODE_STRING *nt_name,
|
||||
@@ -1873,6 +1927,7 @@ static NTSTATUS build_module( LPCWSTR load_path, const UNICODE_STRING *nt_name,
|
||||
/* the module has only be inserted in the load & memory order lists */
|
||||
RemoveEntryList(&wm->ldr.InLoadOrderLinks);
|
||||
RemoveEntryList(&wm->ldr.InMemoryOrderLinks);
|
||||
@ -197,7 +197,7 @@ index dad7bae6ccf..0727d4d15f5 100644
|
||||
|
||||
/* FIXME: there are several more dangling references
|
||||
* left. Including dlls loaded by this dll before the
|
||||
@@ -3291,6 +3346,7 @@ static void free_modref( WINE_MODREF *wm )
|
||||
@@ -3246,6 +3301,7 @@ static void free_modref( WINE_MODREF *wm )
|
||||
{
|
||||
RemoveEntryList(&wm->ldr.InLoadOrderLinks);
|
||||
RemoveEntryList(&wm->ldr.InMemoryOrderLinks);
|
||||
@ -205,7 +205,7 @@ index dad7bae6ccf..0727d4d15f5 100644
|
||||
if (wm->ldr.InInitializationOrderLinks.Flink)
|
||||
RemoveEntryList(&wm->ldr.InInitializationOrderLinks);
|
||||
|
||||
@@ -4010,6 +4066,7 @@ static NTSTATUS process_init(void)
|
||||
@@ -3973,6 +4029,7 @@ static NTSTATUS process_init(void)
|
||||
INITIAL_TEB stack;
|
||||
TEB *teb = NtCurrentTeb();
|
||||
PEB *peb = teb->Peb;
|
||||
@ -213,7 +213,7 @@ index dad7bae6ccf..0727d4d15f5 100644
|
||||
|
||||
peb->LdrData = &ldr;
|
||||
peb->FastPebLock = &peb_lock;
|
||||
@@ -4046,6 +4103,10 @@ static NTSTATUS process_init(void)
|
||||
@@ -4006,6 +4063,10 @@ static NTSTATUS process_init(void)
|
||||
load_global_options();
|
||||
version_init();
|
||||
|
||||
@ -224,7 +224,7 @@ index dad7bae6ccf..0727d4d15f5 100644
|
||||
if (!(status = load_dll( params->DllPath.Buffer, params->ImagePathName.Buffer, NULL,
|
||||
DONT_RESOLVE_DLL_REFERENCES, &wm )))
|
||||
{
|
||||
@@ -4133,6 +4194,10 @@ static NTSTATUS process_init(void)
|
||||
@@ -4094,6 +4155,10 @@ static NTSTATUS process_init(void)
|
||||
teb->Tib.StackBase = stack.StackBase;
|
||||
teb->Tib.StackLimit = stack.StackLimit;
|
||||
teb->DeallocationStack = stack.DeallocationStack;
|
||||
@ -236,10 +236,10 @@ index dad7bae6ccf..0727d4d15f5 100644
|
||||
}
|
||||
|
||||
diff --git a/include/winternl.h b/include/winternl.h
|
||||
index 2ff60a35004..8cc8a166608 100644
|
||||
index f0ab223ef2e..b6676717436 100644
|
||||
--- a/include/winternl.h
|
||||
+++ b/include/winternl.h
|
||||
@@ -2731,8 +2731,8 @@ typedef struct _LDR_DATA_TABLE_ENTRY
|
||||
@@ -2794,8 +2794,8 @@ typedef struct _LDR_DATA_TABLE_ENTRY
|
||||
ULONG Flags;
|
||||
SHORT LoadCount;
|
||||
SHORT TlsIndex;
|
||||
@ -250,5 +250,5 @@ index 2ff60a35004..8cc8a166608 100644
|
||||
HANDLE ActivationContext;
|
||||
void* Lock;
|
||||
--
|
||||
2.29.2
|
||||
2.20.1
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 9a0cccb7476bf79cb2f5f0bc553c58044526477b Mon Sep 17 00:00:00 2001
|
||||
From 8ab8ef02e2a7daf9296250c8a1b72a7ee0114cd9 Mon Sep 17 00:00:00 2001
|
||||
From: Zebediah Figura <z.figura12@gmail.com>
|
||||
Date: Mon, 2 Nov 2020 20:24:07 -0600
|
||||
Subject: [PATCH] ntdll: Reimplement Win32 futexes on top of thread-ID alerts.
|
||||
@ -14,10 +14,10 @@ Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
|
||||
6 files changed, 187 insertions(+), 173 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h
|
||||
index aebea12e6ba..03142ba4bab 100644
|
||||
index 72340a171c9..baf58ca17eb 100644
|
||||
--- a/dlls/ntdll/ntdll_misc.h
|
||||
+++ b/dlls/ntdll/ntdll_misc.h
|
||||
@@ -86,6 +86,8 @@ extern const struct unix_funcs *unix_funcs DECLSPEC_HIDDEN;
|
||||
@@ -85,6 +85,8 @@ extern const struct unix_funcs *unix_funcs DECLSPEC_HIDDEN;
|
||||
|
||||
extern struct _KUSER_SHARED_DATA *user_shared_data DECLSPEC_HIDDEN;
|
||||
|
||||
@ -25,7 +25,7 @@ index aebea12e6ba..03142ba4bab 100644
|
||||
+
|
||||
/* locale */
|
||||
extern LCID user_lcid, system_lcid;
|
||||
extern DWORD ntdll_umbstowcs( const char* src, DWORD srclen, WCHAR* dst, DWORD dstlen ) DECLSPEC_HIDDEN;
|
||||
|
||||
diff --git a/dlls/ntdll/sync.c b/dlls/ntdll/sync.c
|
||||
index f1263ae33fd..d652f55b630 100644
|
||||
--- a/dlls/ntdll/sync.c
|
||||
@ -261,7 +261,7 @@ index 25496609f08..4f395336428 100644
|
||||
}
|
||||
|
||||
diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c
|
||||
index df8d99ce489..9e873d655ca 100644
|
||||
index b7e1432535d..aff4594ab46 100644
|
||||
--- a/dlls/ntdll/unix/loader.c
|
||||
+++ b/dlls/ntdll/unix/loader.c
|
||||
@@ -1691,9 +1691,6 @@ static struct unix_funcs unix_funcs =
|
||||
@ -275,7 +275,7 @@ index df8d99ce489..9e873d655ca 100644
|
||||
fast_RtlpUnWaitCriticalSection,
|
||||
fast_RtlDeleteCriticalSection,
|
||||
diff --git a/dlls/ntdll/unix/sync.c b/dlls/ntdll/unix/sync.c
|
||||
index f4164b499da..0551682979c 100644
|
||||
index 7d6423083e1..41005425a90 100644
|
||||
--- a/dlls/ntdll/unix/sync.c
|
||||
+++ b/dlls/ntdll/unix/sync.c
|
||||
@@ -77,10 +77,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(sync);
|
||||
@ -467,15 +467,15 @@ index f4164b499da..0551682979c 100644
|
||||
- mutex_unlock( &addr_mutex );
|
||||
-}
|
||||
diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h
|
||||
index bd2512030c2..933cd0d33ce 100644
|
||||
index 290379a9310..e84b6052378 100644
|
||||
--- a/dlls/ntdll/unixlib.h
|
||||
+++ b/dlls/ntdll/unixlib.h
|
||||
@@ -26,7 +26,7 @@
|
||||
struct _DISPATCHER_CONTEXT;
|
||||
|
||||
/* increment this when you change the function table */
|
||||
-#define NTDLL_UNIXLIB_VERSION 113
|
||||
+#define NTDLL_UNIXLIB_VERSION 114
|
||||
-#define NTDLL_UNIXLIB_VERSION 115
|
||||
+#define NTDLL_UNIXLIB_VERSION 116
|
||||
|
||||
struct unix_funcs
|
||||
{
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 66780246e8198c0b83c8955819a8d1a4b497ed8e Mon Sep 17 00:00:00 2001
|
||||
From aae4ecb64fea01acde1b44c95f063acd29f74a7e Mon Sep 17 00:00:00 2001
|
||||
From: Zebediah Figura <z.figura12@gmail.com>
|
||||
Date: Mon, 31 Aug 2020 23:38:09 -0500
|
||||
Subject: [PATCH] ntdll: Reimplement the critical section fast path on top of
|
||||
@ -83,7 +83,7 @@ index 09975ac3d45..97a5ce7fffa 100644
|
||||
return ret;
|
||||
}
|
||||
diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c
|
||||
index 9e873d655ca..d2f8202171c 100644
|
||||
index aff4594ab46..38a18d9c949 100644
|
||||
--- a/dlls/ntdll/unix/loader.c
|
||||
+++ b/dlls/ntdll/unix/loader.c
|
||||
@@ -1691,9 +1691,6 @@ static struct unix_funcs unix_funcs =
|
||||
@ -97,7 +97,7 @@ index 9e873d655ca..d2f8202171c 100644
|
||||
fast_RtlAcquireSRWLockExclusive,
|
||||
fast_RtlTryAcquireSRWLockShared,
|
||||
diff --git a/dlls/ntdll/unix/sync.c b/dlls/ntdll/unix/sync.c
|
||||
index 0551682979c..7b8bbe737f0 100644
|
||||
index 41005425a90..6b97028fb68 100644
|
||||
--- a/dlls/ntdll/unix/sync.c
|
||||
+++ b/dlls/ntdll/unix/sync.c
|
||||
@@ -2409,115 +2409,6 @@ NTSTATUS WINAPI NtWaitForAlertByThreadId( const void *address, const LARGE_INTEG
|
||||
@ -217,10 +217,10 @@ index 0551682979c..7b8bbe737f0 100644
|
||||
|
||||
/* Futex-based SRW lock implementation:
|
||||
diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h
|
||||
index 75a8dc9c85d..3f4b93e42ed 100644
|
||||
index d056b1500c9..4033d8fee76 100644
|
||||
--- a/dlls/ntdll/unix/unix_private.h
|
||||
+++ b/dlls/ntdll/unix/unix_private.h
|
||||
@@ -94,9 +94,6 @@ extern void (WINAPI *pKiUserApcDispatcher)(CONTEXT*,ULONG_PTR,ULONG_PTR,ULON
|
||||
@@ -98,9 +98,6 @@ extern void (WINAPI *pKiUserApcDispatcher)(CONTEXT*,ULONG_PTR,ULONG_PTR,ULON
|
||||
extern NTSTATUS (WINAPI *pKiUserExceptionDispatcher)(EXCEPTION_RECORD*,CONTEXT*) DECLSPEC_HIDDEN;
|
||||
extern void (WINAPI *pLdrInitializeThunk)(CONTEXT*,void**,ULONG_PTR,ULONG_PTR) DECLSPEC_HIDDEN;
|
||||
extern void (WINAPI *pRtlUserThreadStart)( PRTL_THREAD_START_ROUTINE entry, void *arg ) DECLSPEC_HIDDEN;
|
||||
@ -231,15 +231,15 @@ index 75a8dc9c85d..3f4b93e42ed 100644
|
||||
extern NTSTATUS CDECL fast_RtlAcquireSRWLockExclusive( RTL_SRWLOCK *lock ) DECLSPEC_HIDDEN;
|
||||
extern NTSTATUS CDECL fast_RtlTryAcquireSRWLockShared( RTL_SRWLOCK *lock ) DECLSPEC_HIDDEN;
|
||||
diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h
|
||||
index 933cd0d33ce..24f5d92b0a8 100644
|
||||
index e84b6052378..f9c024d2e78 100644
|
||||
--- a/dlls/ntdll/unixlib.h
|
||||
+++ b/dlls/ntdll/unixlib.h
|
||||
@@ -26,7 +26,7 @@
|
||||
struct _DISPATCHER_CONTEXT;
|
||||
|
||||
/* increment this when you change the function table */
|
||||
-#define NTDLL_UNIXLIB_VERSION 114
|
||||
+#define NTDLL_UNIXLIB_VERSION 115
|
||||
-#define NTDLL_UNIXLIB_VERSION 116
|
||||
+#define NTDLL_UNIXLIB_VERSION 117
|
||||
|
||||
struct unix_funcs
|
||||
{
|
||||
|
@ -1,4 +1,4 @@
|
||||
From e2fca35720c0bb5bef7fc4993b163d5c8951530e Mon Sep 17 00:00:00 2001
|
||||
From 2ab71fb4253f099683b9a9c8974643b505f001e1 Mon Sep 17 00:00:00 2001
|
||||
From: Zebediah Figura <z.figura12@gmail.com>
|
||||
Date: Mon, 31 Aug 2020 23:55:29 -0500
|
||||
Subject: [PATCH] ntdll: Get rid of the direct futex path for condition
|
||||
@ -80,7 +80,7 @@ index 97a5ce7fffa..1e6afc4cfc8 100644
|
||||
if (flags & RTL_CONDITION_VARIABLE_LOCKMODE_SHARED)
|
||||
RtlAcquireSRWLockShared( lock );
|
||||
diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c
|
||||
index d2f8202171c..ab27626fb6f 100644
|
||||
index 38a18d9c949..58616212f15 100644
|
||||
--- a/dlls/ntdll/unix/loader.c
|
||||
+++ b/dlls/ntdll/unix/loader.c
|
||||
@@ -1697,8 +1697,6 @@ static struct unix_funcs unix_funcs =
|
||||
@ -93,7 +93,7 @@ index d2f8202171c..ab27626fb6f 100644
|
||||
ntdll_ceil,
|
||||
ntdll_cos,
|
||||
diff --git a/dlls/ntdll/unix/sync.c b/dlls/ntdll/unix/sync.c
|
||||
index 7b8bbe737f0..ca18c1a22b1 100644
|
||||
index 6b97028fb68..d4092438644 100644
|
||||
--- a/dlls/ntdll/unix/sync.c
|
||||
+++ b/dlls/ntdll/unix/sync.c
|
||||
@@ -166,23 +166,6 @@ static int *get_futex(void **ptr)
|
||||
@ -187,10 +187,10 @@ index 7b8bbe737f0..ca18c1a22b1 100644
|
||||
-
|
||||
#endif
|
||||
diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h
|
||||
index 3f4b93e42ed..504975538cc 100644
|
||||
index 4033d8fee76..3ccb51e155c 100644
|
||||
--- a/dlls/ntdll/unix/unix_private.h
|
||||
+++ b/dlls/ntdll/unix/unix_private.h
|
||||
@@ -100,10 +100,7 @@ extern NTSTATUS CDECL fast_RtlTryAcquireSRWLockShared( RTL_SRWLOCK *lock ) DECLS
|
||||
@@ -104,10 +104,7 @@ extern NTSTATUS CDECL fast_RtlTryAcquireSRWLockShared( RTL_SRWLOCK *lock ) DECLS
|
||||
extern NTSTATUS CDECL fast_RtlAcquireSRWLockShared( RTL_SRWLOCK *lock ) DECLSPEC_HIDDEN;
|
||||
extern NTSTATUS CDECL fast_RtlReleaseSRWLockExclusive( RTL_SRWLOCK *lock ) DECLSPEC_HIDDEN;
|
||||
extern NTSTATUS CDECL fast_RtlReleaseSRWLockShared( RTL_SRWLOCK *lock ) DECLSPEC_HIDDEN;
|
||||
@ -199,18 +199,18 @@ index 3f4b93e42ed..504975538cc 100644
|
||||
-extern NTSTATUS CDECL fast_wait_cv( RTL_CONDITION_VARIABLE *variable, const void *value,
|
||||
- const LARGE_INTEGER *timeout ) DECLSPEC_HIDDEN;
|
||||
|
||||
extern USHORT * CDECL get_unix_codepage_data(void) DECLSPEC_HIDDEN;
|
||||
extern void CDECL get_locales( WCHAR *sys, WCHAR *user ) DECLSPEC_HIDDEN;
|
||||
extern void CDECL virtual_release_address_space(void) DECLSPEC_HIDDEN;
|
||||
|
||||
diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h
|
||||
index 24f5d92b0a8..246fd44a53e 100644
|
||||
index f9c024d2e78..ed9c6584939 100644
|
||||
--- a/dlls/ntdll/unixlib.h
|
||||
+++ b/dlls/ntdll/unixlib.h
|
||||
@@ -26,7 +26,7 @@
|
||||
struct _DISPATCHER_CONTEXT;
|
||||
|
||||
/* increment this when you change the function table */
|
||||
-#define NTDLL_UNIXLIB_VERSION 115
|
||||
+#define NTDLL_UNIXLIB_VERSION 116
|
||||
-#define NTDLL_UNIXLIB_VERSION 117
|
||||
+#define NTDLL_UNIXLIB_VERSION 118
|
||||
|
||||
struct unix_funcs
|
||||
{
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 2bc63e7c52262630869ac5a12ecd7225ac533b8d Mon Sep 17 00:00:00 2001
|
||||
From a85907faa73aef081c908fa48b3262301d105f22 Mon Sep 17 00:00:00 2001
|
||||
From: Zebediah Figura <z.figura12@gmail.com>
|
||||
Date: Sun, 22 Nov 2020 20:51:10 -0600
|
||||
Subject: [PATCH] ntdll: Reimplement SRW locks on top of Win32 futexes.
|
||||
@ -392,7 +392,7 @@ index 1e6afc4cfc8..93a6a5fd7de 100644
|
||||
|
||||
/***********************************************************************
|
||||
diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c
|
||||
index ab27626fb6f..f98e33b45fb 100644
|
||||
index 58616212f15..45fe4259d19 100644
|
||||
--- a/dlls/ntdll/unix/loader.c
|
||||
+++ b/dlls/ntdll/unix/loader.c
|
||||
@@ -1691,12 +1691,6 @@ static struct unix_funcs unix_funcs =
|
||||
@ -409,7 +409,7 @@ index ab27626fb6f..f98e33b45fb 100644
|
||||
ntdll_ceil,
|
||||
ntdll_cos,
|
||||
diff --git a/dlls/ntdll/unix/sync.c b/dlls/ntdll/unix/sync.c
|
||||
index ca18c1a22b1..11dd6d65fa0 100644
|
||||
index d4092438644..b67f5fc8f10 100644
|
||||
--- a/dlls/ntdll/unix/sync.c
|
||||
+++ b/dlls/ntdll/unix/sync.c
|
||||
@@ -114,8 +114,6 @@ static inline ULONGLONG monotonic_counter(void)
|
||||
@ -747,10 +747,10 @@ index ca18c1a22b1..11dd6d65fa0 100644
|
||||
-
|
||||
-#endif
|
||||
diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h
|
||||
index 504975538cc..55e91f7a0bd 100644
|
||||
index 3ccb51e155c..313244e5e59 100644
|
||||
--- a/dlls/ntdll/unix/unix_private.h
|
||||
+++ b/dlls/ntdll/unix/unix_private.h
|
||||
@@ -94,12 +94,6 @@ extern void (WINAPI *pKiUserApcDispatcher)(CONTEXT*,ULONG_PTR,ULONG_PTR,ULON
|
||||
@@ -98,12 +98,6 @@ extern void (WINAPI *pKiUserApcDispatcher)(CONTEXT*,ULONG_PTR,ULONG_PTR,ULON
|
||||
extern NTSTATUS (WINAPI *pKiUserExceptionDispatcher)(EXCEPTION_RECORD*,CONTEXT*) DECLSPEC_HIDDEN;
|
||||
extern void (WINAPI *pLdrInitializeThunk)(CONTEXT*,void**,ULONG_PTR,ULONG_PTR) DECLSPEC_HIDDEN;
|
||||
extern void (WINAPI *pRtlUserThreadStart)( PRTL_THREAD_START_ROUTINE entry, void *arg ) DECLSPEC_HIDDEN;
|
||||
@ -762,17 +762,17 @@ index 504975538cc..55e91f7a0bd 100644
|
||||
-extern NTSTATUS CDECL fast_RtlReleaseSRWLockShared( RTL_SRWLOCK *lock ) DECLSPEC_HIDDEN;
|
||||
extern LONGLONG CDECL fast_RtlGetSystemTimePrecise(void) DECLSPEC_HIDDEN;
|
||||
|
||||
extern USHORT * CDECL get_unix_codepage_data(void) DECLSPEC_HIDDEN;
|
||||
extern void CDECL virtual_release_address_space(void) DECLSPEC_HIDDEN;
|
||||
diff --git a/dlls/ntdll/unixlib.h b/dlls/ntdll/unixlib.h
|
||||
index 246fd44a53e..8527f44173b 100644
|
||||
index ed9c6584939..090a694bb40 100644
|
||||
--- a/dlls/ntdll/unixlib.h
|
||||
+++ b/dlls/ntdll/unixlib.h
|
||||
@@ -26,7 +26,7 @@
|
||||
struct _DISPATCHER_CONTEXT;
|
||||
|
||||
/* increment this when you change the function table */
|
||||
-#define NTDLL_UNIXLIB_VERSION 116
|
||||
+#define NTDLL_UNIXLIB_VERSION 117
|
||||
-#define NTDLL_UNIXLIB_VERSION 118
|
||||
+#define NTDLL_UNIXLIB_VERSION 119
|
||||
|
||||
struct unix_funcs
|
||||
{
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 0cdc9966b9cf95ab1d2c53112ef6ea03479a5708 Mon Sep 17 00:00:00 2001
|
||||
From bdb8554de8eba7d4a6e948122c1f98aad35e5d53 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sat, 4 Oct 2014 02:53:22 +0200
|
||||
Subject: [PATCH] ntdll: Setup a temporary signal handler during process
|
||||
@ -15,10 +15,10 @@ Subject: [PATCH] ntdll: Setup a temporary signal handler during process
|
||||
7 files changed, 75 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c
|
||||
index c4f897f3d0d..7eedb03e7a0 100644
|
||||
index b7e1432535d..90fd2cb7a16 100644
|
||||
--- a/dlls/ntdll/unix/loader.c
|
||||
+++ b/dlls/ntdll/unix/loader.c
|
||||
@@ -1983,6 +1983,8 @@ void __wine_main( int argc, char *argv[], char *envp[] )
|
||||
@@ -2075,6 +2075,8 @@ void __wine_main( int argc, char *argv[], char *envp[] )
|
||||
#endif
|
||||
|
||||
virtual_init();
|
||||
@ -28,10 +28,10 @@ index c4f897f3d0d..7eedb03e7a0 100644
|
||||
|
||||
#ifdef __APPLE__
|
||||
diff --git a/dlls/ntdll/unix/signal_arm.c b/dlls/ntdll/unix/signal_arm.c
|
||||
index 2de58925c84..3816f4429b8 100644
|
||||
index 5c96521e55e..bdefeb57ebf 100644
|
||||
--- a/dlls/ntdll/unix/signal_arm.c
|
||||
+++ b/dlls/ntdll/unix/signal_arm.c
|
||||
@@ -971,6 +971,12 @@ void *signal_init_syscalls(void)
|
||||
@@ -982,6 +982,12 @@ void *signal_init_syscalls(void)
|
||||
return __wine_syscall_dispatcher;
|
||||
}
|
||||
|
||||
@ -45,10 +45,10 @@ index 2de58925c84..3816f4429b8 100644
|
||||
/***********************************************************************
|
||||
* init_thread_context
|
||||
diff --git a/dlls/ntdll/unix/signal_arm64.c b/dlls/ntdll/unix/signal_arm64.c
|
||||
index 9a36746f5bc..b04eaf92b65 100644
|
||||
index 80cc59d0743..b8ebca0d9c4 100644
|
||||
--- a/dlls/ntdll/unix/signal_arm64.c
|
||||
+++ b/dlls/ntdll/unix/signal_arm64.c
|
||||
@@ -1130,6 +1130,13 @@ void *signal_init_syscalls(void)
|
||||
@@ -1140,6 +1140,13 @@ void *signal_init_syscalls(void)
|
||||
}
|
||||
|
||||
|
||||
@ -63,10 +63,10 @@ index 9a36746f5bc..b04eaf92b65 100644
|
||||
* init_thread_context
|
||||
*/
|
||||
diff --git a/dlls/ntdll/unix/signal_i386.c b/dlls/ntdll/unix/signal_i386.c
|
||||
index 09529a1ea96..41ea96ccbff 100644
|
||||
index cc1e1d24e2a..807ebb38169 100644
|
||||
--- a/dlls/ntdll/unix/signal_i386.c
|
||||
+++ b/dlls/ntdll/unix/signal_i386.c
|
||||
@@ -1907,6 +1907,30 @@ static BOOL handle_syscall_fault( ucontext_t *sigcontext, void *stack_ptr,
|
||||
@@ -1984,6 +1984,30 @@ static BOOL handle_syscall_fault( ucontext_t *sigcontext, void *stack_ptr,
|
||||
}
|
||||
|
||||
|
||||
@ -97,8 +97,8 @@ index 09529a1ea96..41ea96ccbff 100644
|
||||
/**********************************************************************
|
||||
* segv_handler
|
||||
*
|
||||
@@ -2475,6 +2499,34 @@ void *signal_init_syscalls(void)
|
||||
return __wine_syscall_dispatcher;
|
||||
@@ -2560,6 +2584,34 @@ void *signal_init_syscalls(void)
|
||||
return NtCurrentTeb()->WOW32Reserved = syscall_dispatcher;
|
||||
}
|
||||
|
||||
+/**********************************************************************
|
||||
@ -133,10 +133,10 @@ index 09529a1ea96..41ea96ccbff 100644
|
||||
/***********************************************************************
|
||||
* init_thread_context
|
||||
diff --git a/dlls/ntdll/unix/signal_x86_64.c b/dlls/ntdll/unix/signal_x86_64.c
|
||||
index 8d3353e959d..7c0b446ecba 100644
|
||||
index e62e958b4aa..b10c0e58b17 100644
|
||||
--- a/dlls/ntdll/unix/signal_x86_64.c
|
||||
+++ b/dlls/ntdll/unix/signal_x86_64.c
|
||||
@@ -2783,6 +2783,12 @@ void *signal_init_syscalls(void)
|
||||
@@ -2849,6 +2849,12 @@ void *signal_init_syscalls(void)
|
||||
return syscall_dispatcher;
|
||||
}
|
||||
|
||||
@ -150,10 +150,10 @@ index 8d3353e959d..7c0b446ecba 100644
|
||||
/***********************************************************************
|
||||
* init_thread_context
|
||||
diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h
|
||||
index 65f526d0f7d..ca18cede199 100644
|
||||
index 031f9ed3d33..79a27192e18 100644
|
||||
--- a/dlls/ntdll/unix/unix_private.h
|
||||
+++ b/dlls/ntdll/unix/unix_private.h
|
||||
@@ -208,6 +208,7 @@ extern NTSTATUS signal_alloc_thread( TEB *teb ) DECLSPEC_HIDDEN;
|
||||
@@ -207,6 +207,7 @@ extern NTSTATUS signal_alloc_thread( TEB *teb ) DECLSPEC_HIDDEN;
|
||||
extern void signal_free_thread( TEB *teb ) DECLSPEC_HIDDEN;
|
||||
extern void signal_init_thread( TEB *teb ) DECLSPEC_HIDDEN;
|
||||
extern void signal_init_process(void) DECLSPEC_HIDDEN;
|
||||
@ -162,10 +162,10 @@ index 65f526d0f7d..ca18cede199 100644
|
||||
extern void DECLSPEC_NORETURN signal_start_thread( PRTL_THREAD_START_ROUTINE entry, void *arg,
|
||||
BOOL suspend, void *thunk, TEB *teb ) DECLSPEC_HIDDEN;
|
||||
diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
|
||||
index 9889028de27..6cdf5c3fa5c 100644
|
||||
index 23585a2a17b..5299a6c8859 100644
|
||||
--- a/dlls/ntdll/unix/virtual.c
|
||||
+++ b/dlls/ntdll/unix/virtual.c
|
||||
@@ -2933,7 +2933,7 @@ NTSTATUS virtual_handle_fault( void *addr, DWORD err, void *stack )
|
||||
@@ -2932,7 +2932,7 @@ NTSTATUS virtual_handle_fault( void *addr, DWORD err, void *stack )
|
||||
|
||||
mutex_lock( &virtual_mutex ); /* no need for signal masking inside signal handler */
|
||||
vprot = get_page_vprot( page );
|
||||
|
@ -1,4 +1,4 @@
|
||||
From d0a39d80d29ceee3358929d2b017a374f688ab2f Mon Sep 17 00:00:00 2001
|
||||
From 984214b365c072614c45f996074c092f3ca34d46 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Mon, 5 Jan 2015 18:11:53 +0100
|
||||
Subject: [PATCH] nvapi: First implementation.
|
||||
@ -25,10 +25,10 @@ Subject: [PATCH] nvapi: First implementation.
|
||||
create mode 100644 include/nvapi.h
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 67f4376f9aa..4c74e6436a3 100644
|
||||
index 69674311deb..d0117589326 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -224,6 +224,12 @@ esac
|
||||
@@ -225,6 +225,12 @@ esac
|
||||
dnl enable_win16 defaults to yes on x86, to no on other CPUs
|
||||
enable_win16=${enable_win16:-no}
|
||||
enable_win64=${enable_win64:-no}
|
||||
@ -38,10 +38,10 @@ index 67f4376f9aa..4c74e6436a3 100644
|
||||
+else
|
||||
+ enable_win32="no"
|
||||
+fi
|
||||
enable_wow64cpu=${enable_wow64cpu:-no}
|
||||
|
||||
dnl Disable winetest too if tests are disabled
|
||||
enable_winetest=${enable_winetest:-$enable_tests}
|
||||
@@ -3557,6 +3563,9 @@ WINE_CONFIG_MAKEFILE(dlls/ntoskrnl.exe)
|
||||
@@ -3559,6 +3565,9 @@ WINE_CONFIG_MAKEFILE(dlls/ntoskrnl.exe)
|
||||
WINE_CONFIG_MAKEFILE(dlls/ntoskrnl.exe/tests)
|
||||
WINE_CONFIG_MAKEFILE(dlls/ntprint)
|
||||
WINE_CONFIG_MAKEFILE(dlls/ntprint/tests)
|
||||
@ -858,7 +858,7 @@ index 00000000000..f0c054b2bf9
|
||||
+@ stub DllRegisterServer
|
||||
+@ stub DllUnregisterServer
|
||||
diff --git a/include/Makefile.in b/include/Makefile.in
|
||||
index 41861c5af0d..78e9b15aad1 100644
|
||||
index 02ddf06df8f..f0600555cd9 100644
|
||||
--- a/include/Makefile.in
|
||||
+++ b/include/Makefile.in
|
||||
@@ -539,6 +539,7 @@ SOURCES = \
|
||||
|
@ -51,7 +51,7 @@ usage()
|
||||
# Get the upstream commit sha
|
||||
upstream_commit()
|
||||
{
|
||||
echo "0f972e2247932f255f131792724e4796b4b2b87a"
|
||||
echo "3c2db20f66806074b047b0b3c76aa86ad79e3175"
|
||||
}
|
||||
|
||||
# Show version information
|
||||
@ -303,7 +303,6 @@ patch_enable_all ()
|
||||
enable_winmm_mciSendCommandA="$1"
|
||||
enable_wintab32_improvements="$1"
|
||||
enable_wintrust_WTHelperGetProvCertFromChain="$1"
|
||||
enable_wow64cpu_Wow64Transition="$1"
|
||||
enable_wpcap_Dynamic_Linking="$1"
|
||||
enable_ws2_32_APC_Performance="$1"
|
||||
enable_ws2_32_Connect_Time="$1"
|
||||
@ -982,9 +981,6 @@ patch_enable ()
|
||||
wintrust-WTHelperGetProvCertFromChain)
|
||||
enable_wintrust_WTHelperGetProvCertFromChain="$2"
|
||||
;;
|
||||
wow64cpu-Wow64Transition)
|
||||
enable_wow64cpu_Wow64Transition="$2"
|
||||
;;
|
||||
wpcap-Dynamic_Linking)
|
||||
enable_wpcap_Dynamic_Linking="$2"
|
||||
;;
|
||||
@ -4749,20 +4745,6 @@ if test "$enable_wintrust_WTHelperGetProvCertFromChain" -eq 1; then
|
||||
patch_apply wintrust-WTHelperGetProvCertFromChain/0001-wintrust-Add-parameter-check-in-WTHelperGetProvCertF.patch
|
||||
fi
|
||||
|
||||
# Patchset wow64cpu-Wow64Transition
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#45567] League of Legends 8.12+ fails to start a game (anticheat engine, validation of WoW64 syscall dispatcher)
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * configure, configure.ac, dlls/ntdll/loader.c, dlls/ntdll/ntdll.spec, dlls/wow64cpu/Makefile.in,
|
||||
# | dlls/wow64cpu/wow64cpu.spec, dlls/wow64cpu/wow64cpu_main.c
|
||||
# |
|
||||
if test "$enable_wow64cpu_Wow64Transition" -eq 1; then
|
||||
patch_apply wow64cpu-Wow64Transition/0001-wow64cpu-Add-stub-dll.patch
|
||||
patch_apply wow64cpu-Wow64Transition/0002-ntdll-Add-a-stub-implementation-of-Wow64Transition.patch
|
||||
fi
|
||||
|
||||
# Patchset wpcap-Dynamic_Linking
|
||||
# |
|
||||
# | Modified files:
|
||||
|
@ -1,128 +0,0 @@
|
||||
From 162044fcf5d46edd5cc3c0994ec6085f5cdc3a53 Mon Sep 17 00:00:00 2001
|
||||
From: Zebediah Figura <z.figura12@gmail.com>
|
||||
Date: Tue, 7 Aug 2018 21:05:56 -0500
|
||||
Subject: [PATCH 1/2] wow64cpu: Add stub dll.
|
||||
|
||||
---
|
||||
configure | 2 ++
|
||||
configure.ac | 1 +
|
||||
dlls/wow64cpu/Makefile.in | 6 ++++++
|
||||
dlls/wow64cpu/wow64cpu.spec | 25 +++++++++++++++++++++++++
|
||||
dlls/wow64cpu/wow64cpu_main.c | 28 ++++++++++++++++++++++++++++
|
||||
5 files changed, 62 insertions(+)
|
||||
create mode 100644 dlls/wow64cpu/Makefile.in
|
||||
create mode 100644 dlls/wow64cpu/wow64cpu.spec
|
||||
create mode 100644 dlls/wow64cpu/wow64cpu_main.c
|
||||
|
||||
diff --git a/configure b/configure
|
||||
index 337ce91..477fe02 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -1612,6 +1612,7 @@ enable_wmp
|
||||
enable_wmphoto
|
||||
enable_wmvcore
|
||||
enable_wnaspi32
|
||||
+enable_wow64cpu
|
||||
enable_wpc
|
||||
enable_wpcap
|
||||
enable_ws2_32
|
||||
@@ -19952,6 +19953,7 @@ wine_fn_config_makefile dlls/wmvcore enable_wmvcore
|
||||
wine_fn_config_makefile dlls/wmvcore/tests enable_tests
|
||||
wine_fn_config_makefile dlls/wnaspi32 enable_wnaspi32
|
||||
wine_fn_config_makefile dlls/wow32 enable_win16
|
||||
+wine_fn_config_makefile dlls/wow64cpu enable_wow64cpu
|
||||
wine_fn_config_makefile dlls/wpc enable_wpc
|
||||
wine_fn_config_makefile dlls/wpc/tests enable_tests
|
||||
wine_fn_config_makefile dlls/wpcap enable_wpcap
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index be247ea..376b818 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -3813,6 +3813,7 @@ WINE_CONFIG_MAKEFILE(dlls/wmvcore)
|
||||
WINE_CONFIG_MAKEFILE(dlls/wmvcore/tests)
|
||||
WINE_CONFIG_MAKEFILE(dlls/wnaspi32)
|
||||
WINE_CONFIG_MAKEFILE(dlls/wow32,enable_win16)
|
||||
+WINE_CONFIG_MAKEFILE(dlls/wow64cpu)
|
||||
WINE_CONFIG_MAKEFILE(dlls/wpc)
|
||||
WINE_CONFIG_MAKEFILE(dlls/wpc/tests)
|
||||
WINE_CONFIG_MAKEFILE(dlls/wpcap)
|
||||
diff --git a/dlls/wow64cpu/Makefile.in b/dlls/wow64cpu/Makefile.in
|
||||
new file mode 100644
|
||||
index 0000000..d05ff34
|
||||
--- /dev/null
|
||||
+++ b/dlls/wow64cpu/Makefile.in
|
||||
@@ -0,0 +1,6 @@
|
||||
+MODULE = wow64cpu.dll
|
||||
+EXTRADLLFLAGS = -nodefaultlibs
|
||||
+IMPORTS = winecrt0 ntdll
|
||||
+
|
||||
+C_SRCS = \
|
||||
+ wow64cpu_main.c
|
||||
diff --git a/dlls/wow64cpu/wow64cpu.spec b/dlls/wow64cpu/wow64cpu.spec
|
||||
new file mode 100644
|
||||
index 0000000..0ea2b4d
|
||||
--- /dev/null
|
||||
+++ b/dlls/wow64cpu/wow64cpu.spec
|
||||
@@ -0,0 +1,25 @@
|
||||
+# @ stub CpuFlushInstructionCache
|
||||
+# @ stub CpuGetContext
|
||||
+# @ stub CpuGetStackPointer
|
||||
+# @ stub CpuInitializeStartupContext
|
||||
+# @ stub CpuNotifyAffinityChange
|
||||
+# @ stub CpuNotifyAfterFork
|
||||
+# @ stub CpuNotifyBeforeFork
|
||||
+# @ stub CpuNotifyDllLoad
|
||||
+# @ stub CpuNotifyDllUnload
|
||||
+# @ stub CpuPrepareForDebuggerAttach
|
||||
+# @ stub CpuProcessDebugEvent
|
||||
+# @ stub CpuProcessInit
|
||||
+# @ stub CpuProcessTerm
|
||||
+# @ stub CpuResetFloatingPoint
|
||||
+# @ stub CpuResetToConsistentState
|
||||
+# @ stub CpuSetContext
|
||||
+# @ stub CpuSetInstructionPointer
|
||||
+# @ stub CpuSetStackPointer
|
||||
+# @ stub CpuSimulate
|
||||
+# @ stub CpuSuspendLocalThread
|
||||
+# @ stub CpuSuspendThread
|
||||
+# @ stub CpuThreadInit
|
||||
+# @ stub CpuThreadTerm
|
||||
+# @ stub TurboDispatchJumpAddressEnd
|
||||
+# @ stub TurboDispatchJumpAddressStart
|
||||
diff --git a/dlls/wow64cpu/wow64cpu_main.c b/dlls/wow64cpu/wow64cpu_main.c
|
||||
new file mode 100644
|
||||
index 0000000..9bf8012
|
||||
--- /dev/null
|
||||
+++ b/dlls/wow64cpu/wow64cpu_main.c
|
||||
@@ -0,0 +1,28 @@
|
||||
+/*
|
||||
+ * Copyright 2018 Zebediah Figura
|
||||
+ *
|
||||
+ * This library is free software; you can redistribute it and/or
|
||||
+ * modify it under the terms of the GNU Lesser General Public
|
||||
+ * License as published by the Free Software Foundation; either
|
||||
+ * version 2.1 of the License, or (at your option) any later version.
|
||||
+ *
|
||||
+ * This library is distributed in the hope that it will be useful,
|
||||
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
+ * Lesser General Public License for more details.
|
||||
+ *
|
||||
+ * You should have received a copy of the GNU Lesser General Public
|
||||
+ * License along with this library; if not, write to the Free Software
|
||||
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
+ */
|
||||
+
|
||||
+#include "config.h"
|
||||
+#include <stdarg.h>
|
||||
+#include "windef.h"
|
||||
+#include "winternl.h"
|
||||
+
|
||||
+BOOL WINAPI DllMain( HINSTANCE inst, DWORD reason, void *reserved )
|
||||
+{
|
||||
+ if (reason == DLL_PROCESS_ATTACH) LdrDisableThreadCalloutsForDll( inst );
|
||||
+ return TRUE;
|
||||
+}
|
||||
--
|
||||
2.7.4
|
||||
|
@ -1,63 +0,0 @@
|
||||
From b692b26c6e1907d8e72c19a30463b258f18c5f30 Mon Sep 17 00:00:00 2001
|
||||
From: Zebediah Figura <z.figura12@gmail.com>
|
||||
Date: Wed, 8 Aug 2018 20:00:15 -0500
|
||||
Subject: [PATCH] ntdll: Add a stub implementation of Wow64Transition.
|
||||
|
||||
---
|
||||
dlls/ntdll/loader.c | 11 ++++++++++-
|
||||
dlls/ntdll/ntdll.spec | 1 +
|
||||
2 files changed, 11 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
|
||||
index 8dbbb14f05d..1fc49fa580f 100644
|
||||
--- a/dlls/ntdll/loader.c
|
||||
+++ b/dlls/ntdll/loader.c
|
||||
@@ -3935,6 +3935,7 @@ BOOL WINAPI DllMain( HINSTANCE inst, DWORD reason, LPVOID reserved )
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
+void *Wow64Transition;
|
||||
|
||||
/***********************************************************************
|
||||
* restart_winevdm
|
||||
@@ -3965,9 +3966,10 @@ static void restart_winevdm( RTL_USER_PROCESS_PARAMETERS *params )
|
||||
static NTSTATUS process_init(void)
|
||||
{
|
||||
RTL_USER_PROCESS_PARAMETERS *params;
|
||||
- WINE_MODREF *wm;
|
||||
+ WINE_MODREF *wm, *wow64cpu_wm;
|
||||
NTSTATUS status;
|
||||
ANSI_STRING func_name;
|
||||
+ UNICODE_STRING nt_name;
|
||||
INITIAL_TEB stack;
|
||||
TEB *teb = NtCurrentTeb();
|
||||
PEB *peb = teb->Peb;
|
||||
@@ -4074,6 +4076,13 @@ static NTSTATUS process_init(void)
|
||||
MESSAGE( "wine: could not load kernel32.dll, status %x\n", status );
|
||||
NtTerminateProcess( GetCurrentProcess(), status );
|
||||
}
|
||||
+
|
||||
+ RtlInitUnicodeString( &nt_name, L"\\??\\C:\\windows\\system32\\wow64cpu.dll" );
|
||||
+ if ((status = load_builtin_dll( NULL, &nt_name, 0, &wow64cpu_wm, FALSE )) == STATUS_SUCCESS)
|
||||
+ Wow64Transition = wow64cpu_wm->ldr.DllBase;
|
||||
+ else
|
||||
+ WARN( "could not load wow64cpu.dll, status %#x\n", status );
|
||||
+
|
||||
RtlInitAnsiString( &func_name, "BaseThreadInitThunk" );
|
||||
if ((status = LdrGetProcedureAddress( wm->ldr.DllBase, &func_name,
|
||||
0, (void **)&pBaseThreadInitThunk )) != STATUS_SUCCESS)
|
||||
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
|
||||
index 185dd6767eb..4b40e292fad 100644
|
||||
--- a/dlls/ntdll/ntdll.spec
|
||||
+++ b/dlls/ntdll/ntdll.spec
|
||||
@@ -1129,6 +1129,7 @@
|
||||
@ stdcall WinSqmIsOptedIn()
|
||||
@ stdcall WinSqmSetDWORD(ptr long long)
|
||||
@ stdcall WinSqmStartSession(ptr long long)
|
||||
+@ extern Wow64Transition
|
||||
@ stdcall -private -syscall ZwAcceptConnectPort(ptr long ptr long ptr ptr) NtAcceptConnectPort
|
||||
@ stdcall -private -syscall ZwAccessCheck(ptr long long ptr ptr ptr ptr ptr) NtAccessCheck
|
||||
@ stdcall -private -syscall ZwAccessCheckAndAuditAlarm(ptr long ptr ptr ptr long ptr long ptr ptr ptr) NtAccessCheckAndAuditAlarm
|
||||
--
|
||||
2.20.1
|
||||
|
@ -1 +0,0 @@
|
||||
Fixes: [45567] League of Legends 8.12+ fails to start a game (anticheat engine, validation of WoW64 syscall dispatcher)
|
@ -1 +1 @@
|
||||
0f972e2247932f255f131792724e4796b4b2b87a
|
||||
3c2db20f66806074b047b0b3c76aa86ad79e3175
|
||||
|
Loading…
Reference in New Issue
Block a user