Added ntdll-RtlAddGrowableFunctionTable patchset

This commit is contained in:
Alistair Leslie-Hughes 2018-11-19 08:49:56 +11:00
parent b8e292a69c
commit d4deb4faac
4 changed files with 251 additions and 37 deletions

View File

@ -0,0 +1,93 @@
From 587e15322d1f68aa61c01ec3a92d13aeda1af6d9 Mon Sep 17 00:00:00 2001
From: Austin English <austinenglish@gmail.com>
Date: Wed, 24 Jan 2018 22:27:51 -0700
Subject: [PATCH] ntdll: Add RtlAddGrowableFunctionTable stub
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
---
dlls/ntdll/ntdll.spec | 1 +
dlls/ntdll/signal_arm.c | 10 ++++++++++
dlls/ntdll/signal_arm64.c | 10 ++++++++++
dlls/ntdll/signal_x86_64.c | 12 ++++++++++++
4 files changed, 33 insertions(+)
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
index c602dbb..4fa9c7d 100644
--- a/dlls/ntdll/ntdll.spec
+++ b/dlls/ntdll/ntdll.spec
@@ -434,6 +434,7 @@
@ stdcall RtlAddMandatoryAce(ptr long long long long ptr)
# @ stub RtlAddRange
@ cdecl -arch=arm,arm64,x86_64 RtlAddFunctionTable(ptr long long)
+@ cdecl -arch=arm,arm64,x86_64 RtlAddGrowableFunctionTable(ptr ptr long long long long)
@ stdcall RtlAddRefActivationContext(ptr)
# @ stub RtlAddRefMemoryStream
@ stdcall RtlAddVectoredContinueHandler(long ptr)
diff --git a/dlls/ntdll/signal_arm.c b/dlls/ntdll/signal_arm.c
index 5ca45ea..f5b9a64 100644
--- a/dlls/ntdll/signal_arm.c
+++ b/dlls/ntdll/signal_arm.c
@@ -1058,6 +1058,16 @@ BOOLEAN CDECL RtlAddFunctionTable( RUNTIME_FUNCTION *table, DWORD count, DWORD a
return TRUE;
}
+/*************************************************************************
+ * RtlAddGrowableFunctionTable (NTDLL.@)
+ */
+DWORD WINAPI RtlAddGrowableFunctionTable( void **table, RUNTIME_FUNCTION *functions, DWORD count, DWORD max_count,
+ ULONG_PTR base, ULONG_PTR end )
+{
+ FIXME( "(%p, %p, %d, %d, %ld, %ld) stub!\n", table, functions, count, max_count, base, end );
+ if (table) *table = NULL;
+ return S_OK;
+}
/**********************************************************************
* RtlDeleteFunctionTable (NTDLL.@)
diff --git a/dlls/ntdll/signal_arm64.c b/dlls/ntdll/signal_arm64.c
index 923bc39..9e113ed 100644
--- a/dlls/ntdll/signal_arm64.c
+++ b/dlls/ntdll/signal_arm64.c
@@ -976,6 +976,16 @@ BOOLEAN CDECL RtlAddFunctionTable( RUNTIME_FUNCTION *table, DWORD count, ULONG_P
return TRUE;
}
+/*************************************************************************
+ * RtlAddGrowableFunctionTable (NTDLL.@)
+ */
+DWORD WINAPI RtlAddGrowableFunctionTable( void **table, RUNTIME_FUNCTION *functions, DWORD count, DWORD max_count,
+ ULONG_PTR base, ULONG_PTR end )
+{
+ FIXME( "(%p, %p, %d, %d, %ld, %ld) stub!\n", table, functions, count, max_count, base, end );
+ if (table) *table = NULL;
+ return S_OK;
+}
/**********************************************************************
* RtlDeleteFunctionTable (NTDLL.@)
diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c
index f5dfd27..a6934ba 100644
--- a/dlls/ntdll/signal_x86_64.c
+++ b/dlls/ntdll/signal_x86_64.c
@@ -3506,6 +3506,18 @@ BOOLEAN CDECL RtlInstallFunctionTableCallback( DWORD64 table, DWORD64 base, DWOR
}
+/*************************************************************************
+ * RtlAddGrowableFunctionTable (NTDLL.@)
+ */
+DWORD WINAPI RtlAddGrowableFunctionTable( void **table, RUNTIME_FUNCTION *functions, DWORD count, DWORD max_count,
+ ULONG_PTR base, ULONG_PTR end )
+{
+ FIXME( "(%p, %p, %d, %d, %ld, %ld) stub!\n", table, functions, count, max_count, base, end );
+ if (table) *table = NULL;
+ return S_OK;
+}
+
+
/**********************************************************************
* RtlDeleteFunctionTable (NTDLL.@)
*/
--
1.9.1

View File

@ -0,0 +1,86 @@
From 31ac411774a34b84726b1a0f6bffae2cb8d9f15a Mon Sep 17 00:00:00 2001
From: Alex Henrie <alexhenrie24@gmail.com>
Date: Wed, 24 Jan 2018 22:27:52 -0700
Subject: [PATCH] ntdll: Add RtlGrowFunctionTable stub
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
---
dlls/ntdll/ntdll.spec | 1 +
dlls/ntdll/signal_arm.c | 8 ++++++++
dlls/ntdll/signal_arm64.c | 8 ++++++++
dlls/ntdll/signal_x86_64.c | 9 +++++++++
4 files changed, 26 insertions(+)
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
index 4fa9c7d..85897b1 100644
--- a/dlls/ntdll/ntdll.spec
+++ b/dlls/ntdll/ntdll.spec
@@ -684,6 +684,7 @@
@ stdcall RtlGetUnloadEventTraceEx(ptr ptr ptr)
@ stub RtlGetUserInfoHeap
@ stdcall RtlGetVersion(ptr)
+@ stdcall -arch=arm,arm64,x86_64 RtlGrowFunctionTable(ptr long)
@ stub RtlGuidToPropertySetName
@ stdcall RtlHashUnicodeString(ptr long long ptr)
@ stdcall RtlIdentifierAuthoritySid(ptr)
diff --git a/dlls/ntdll/signal_arm.c b/dlls/ntdll/signal_arm.c
index f5b9a64..41bbdb7 100644
--- a/dlls/ntdll/signal_arm.c
+++ b/dlls/ntdll/signal_arm.c
@@ -1069,6 +1069,14 @@ DWORD WINAPI RtlAddGrowableFunctionTable( void **table, RUNTIME_FUNCTION *functi
return S_OK;
}
+/*************************************************************************
+ * RtlGrowFunctionTable (NTDLL.@)
+ */
+void WINAPI RtlGrowFunctionTable( void *table, DWORD count )
+{
+ FIXME( "(%p, %d) stub!\n", table, count );
+}
+
/**********************************************************************
* RtlDeleteFunctionTable (NTDLL.@)
*/
diff --git a/dlls/ntdll/signal_arm64.c b/dlls/ntdll/signal_arm64.c
index 9e113ed..8e99e7e 100644
--- a/dlls/ntdll/signal_arm64.c
+++ b/dlls/ntdll/signal_arm64.c
@@ -987,6 +987,14 @@ DWORD WINAPI RtlAddGrowableFunctionTable( void **table, RUNTIME_FUNCTION *functi
return S_OK;
}
+/*************************************************************************
+ * RtlGrowFunctionTable (NTDLL.@)
+ */
+void WINAPI RtlGrowFunctionTable( void *table, DWORD count )
+{
+ FIXME( "(%p, %d) stub!\n", table, count );
+}
+
/**********************************************************************
* RtlDeleteFunctionTable (NTDLL.@)
*/
diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c
index a6934ba..848b9a0 100644
--- a/dlls/ntdll/signal_x86_64.c
+++ b/dlls/ntdll/signal_x86_64.c
@@ -3518,6 +3518,15 @@ DWORD WINAPI RtlAddGrowableFunctionTable( void **table, RUNTIME_FUNCTION *functi
}
+/*************************************************************************
+ * RtlGrowFunctionTable (NTDLL.@)
+ */
+void WINAPI RtlGrowFunctionTable( void *table, DWORD count )
+{
+ FIXME( "(%p, %d) stub!\n", table, count );
+}
+
+
/**********************************************************************
* RtlDeleteFunctionTable (NTDLL.@)
*/
--
1.9.1

View File

@ -0,0 +1,4 @@
Fixes: [42255] ntdll: Add RtlAddGrowableFunctionTable stub
Fixes: ntdll: Add RtlGrowFunctionTable stub
Depends: ntdll-RtlGetUnloadEventTraceEx

View File

@ -220,6 +220,7 @@ patch_enable_all ()
enable_ntdll_Pipe_SpecialCharacters="$1"
enable_ntdll_ProcessQuotaLimits="$1"
enable_ntdll_Purist_Mode="$1"
enable_ntdll_RtlAddGrowableFunctionTable="$1"
enable_ntdll_RtlCaptureStackBackTrace="$1"
enable_ntdll_RtlCreateUserThread="$1"
enable_ntdll_RtlGetUnloadEventTraceEx="$1"
@ -824,6 +825,9 @@ patch_enable ()
ntdll-Purist_Mode)
enable_ntdll_Purist_Mode="$2"
;;
ntdll-RtlAddGrowableFunctionTable)
enable_ntdll_RtlAddGrowableFunctionTable="$2"
;;
ntdll-RtlCaptureStackBackTrace)
enable_ntdll_RtlCaptureStackBackTrace="$2"
;;
@ -2022,13 +2026,6 @@ if test "$enable_ntdll_WRITECOPY" -eq 1; then
enable_ntdll_User_Shared_Data=1
fi
if test "$enable_ntdll_RtlGetUnloadEventTraceEx" -eq 1; then
if test "$enable_ntdll_RtlQueryPackageIdentity" -gt 1; then
abort "Patchset ntdll-RtlQueryPackageIdentity disabled, but ntdll-RtlGetUnloadEventTraceEx depends on that."
fi
enable_ntdll_RtlQueryPackageIdentity=1
fi
if test "$enable_ntdll_RtlCreateUserThread" -eq 1; then
if test "$enable_ntdll_LdrInitializeThunk" -gt 1; then
abort "Patchset ntdll-LdrInitializeThunk disabled, but ntdll-RtlCreateUserThread depends on that."
@ -2036,6 +2033,20 @@ if test "$enable_ntdll_RtlCreateUserThread" -eq 1; then
enable_ntdll_LdrInitializeThunk=1
fi
if test "$enable_ntdll_RtlAddGrowableFunctionTable" -eq 1; then
if test "$enable_ntdll_RtlGetUnloadEventTraceEx" -gt 1; then
abort "Patchset ntdll-RtlGetUnloadEventTraceEx disabled, but ntdll-RtlAddGrowableFunctionTable depends on that."
fi
enable_ntdll_RtlGetUnloadEventTraceEx=1
fi
if test "$enable_ntdll_RtlGetUnloadEventTraceEx" -eq 1; then
if test "$enable_ntdll_RtlQueryPackageIdentity" -gt 1; then
abort "Patchset ntdll-RtlQueryPackageIdentity disabled, but ntdll-RtlGetUnloadEventTraceEx depends on that."
fi
enable_ntdll_RtlQueryPackageIdentity=1
fi
if test "$enable_ntdll_Purist_Mode" -eq 1; then
if test "$enable_ntdll_DllRedirects" -gt 1; then
abort "Patchset ntdll-DllRedirects disabled, but ntdll-Purist_Mode depends on that."
@ -4956,6 +4967,56 @@ if test "$enable_ntdll_Purist_Mode" -eq 1; then
) >> "$patchlist"
fi
# Patchset ntdll-RtlQueryPackageIdentity
# |
# | Modified files:
# | * dlls/ntdll/tests/Makefile.in, dlls/ntdll/tests/rtl.c
# |
if test "$enable_ntdll_RtlQueryPackageIdentity" -eq 1; then
patch_apply ntdll-RtlQueryPackageIdentity/0003-ntdll-tests-Add-basic-tests-for-RtlQueryPackageIdent.patch
(
printf '%s\n' '+ { "Michael Müller", "ntdll/tests: Add basic tests for RtlQueryPackageIdentity.", 1 },';
) >> "$patchlist"
fi
# Patchset ntdll-RtlGetUnloadEventTraceEx
# |
# | This patchset has the following (direct or indirect) dependencies:
# | * ntdll-RtlQueryPackageIdentity
# |
# | This patchset fixes the following Wine bugs:
# | * [#44897] Implement stub for ntdll.RtlGetUnloadEventTraceEx
# |
# | Modified files:
# | * dlls/ntdll/ntdll.spec, dlls/ntdll/rtl.c
# |
if test "$enable_ntdll_RtlGetUnloadEventTraceEx" -eq 1; then
patch_apply ntdll-RtlGetUnloadEventTraceEx/0001-ntdll-Add-stub-for-RtlGetUnloadEventTraceEx.patch
(
printf '%s\n' '+ { "Michael Müller", "ntdll: Add stub for RtlGetUnloadEventTraceEx.", 1 },';
) >> "$patchlist"
fi
# Patchset ntdll-RtlAddGrowableFunctionTable
# |
# | This patchset has the following (direct or indirect) dependencies:
# | * ntdll-RtlQueryPackageIdentity, ntdll-RtlGetUnloadEventTraceEx
# |
# | This patchset fixes the following Wine bugs:
# | * [#42255] ntdll: Add RtlAddGrowableFunctionTable stub
# |
# | Modified files:
# | * dlls/ntdll/ntdll.spec, dlls/ntdll/signal_arm.c, dlls/ntdll/signal_arm64.c, dlls/ntdll/signal_x86_64.c
# |
if test "$enable_ntdll_RtlAddGrowableFunctionTable" -eq 1; then
patch_apply ntdll-RtlAddGrowableFunctionTable/0001-ntdll-Add-RtlAddGrowableFunctionTable-stub.patch
patch_apply ntdll-RtlAddGrowableFunctionTable/0002-ntdll-Add-RtlGrowFunctionTable-stub.patch
(
printf '%s\n' '+ { "Austin English", "ntdll: Add RtlAddGrowableFunctionTable stub.", 1 },';
printf '%s\n' '+ { "Alex Henrie", "ntdll: Add RtlGrowFunctionTable stub.", 1 },';
) >> "$patchlist"
fi
# Patchset ntdll-RtlCaptureStackBackTrace
# |
# | This patchset fixes the following Wine bugs:
@ -4989,36 +5050,6 @@ if test "$enable_ntdll_RtlCreateUserThread" -eq 1; then
) >> "$patchlist"
fi
# Patchset ntdll-RtlQueryPackageIdentity
# |
# | Modified files:
# | * dlls/ntdll/tests/Makefile.in, dlls/ntdll/tests/rtl.c
# |
if test "$enable_ntdll_RtlQueryPackageIdentity" -eq 1; then
patch_apply ntdll-RtlQueryPackageIdentity/0003-ntdll-tests-Add-basic-tests-for-RtlQueryPackageIdent.patch
(
printf '%s\n' '+ { "Michael Müller", "ntdll/tests: Add basic tests for RtlQueryPackageIdentity.", 1 },';
) >> "$patchlist"
fi
# Patchset ntdll-RtlGetUnloadEventTraceEx
# |
# | This patchset has the following (direct or indirect) dependencies:
# | * ntdll-RtlQueryPackageIdentity
# |
# | This patchset fixes the following Wine bugs:
# | * [#44897] Implement stub for ntdll.RtlGetUnloadEventTraceEx
# |
# | Modified files:
# | * dlls/ntdll/ntdll.spec, dlls/ntdll/rtl.c
# |
if test "$enable_ntdll_RtlGetUnloadEventTraceEx" -eq 1; then
patch_apply ntdll-RtlGetUnloadEventTraceEx/0001-ntdll-Add-stub-for-RtlGetUnloadEventTraceEx.patch
(
printf '%s\n' '+ { "Michael Müller", "ntdll: Add stub for RtlGetUnloadEventTraceEx.", 1 },';
) >> "$patchlist"
fi
# Patchset ntdll-Serial_Port_Detection
# |
# | This patchset fixes the following Wine bugs: