diff --git a/patches/ntoskrnl.exe-KeGenericCallDpc/0001-ntoskrnl.exe-Add-KeGenericCallDpc-stub.patch b/patches/ntoskrnl.exe-KeGenericCallDpc/0001-ntoskrnl.exe-Add-KeGenericCallDpc-stub.patch new file mode 100644 index 00000000..6ae904fb --- /dev/null +++ b/patches/ntoskrnl.exe-KeGenericCallDpc/0001-ntoskrnl.exe-Add-KeGenericCallDpc-stub.patch @@ -0,0 +1,43 @@ +From ee02a657cc17510943c2db6c0bde56b9424c7291 Mon Sep 17 00:00:00 2001 +From: Alistair Leslie-Hughes +Date: Sun, 24 May 2020 10:05:24 +1000 +Subject: [PATCH 1/3] ntoskrnl.exe: Add KeGenericCallDpc stub + +Wine-bug:https://bugs.winehq.org/show_bug.cgi?id=49224 +Signed-off-by: Alistair Leslie-Hughes +--- + dlls/ntoskrnl.exe/ntoskrnl.c | 8 ++++++++ + dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 1 + + 2 files changed, 9 insertions(+) + +diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c +index 773f8c1c3279..3975e47ddb08 100644 +--- a/dlls/ntoskrnl.exe/ntoskrnl.c ++++ b/dlls/ntoskrnl.exe/ntoskrnl.c +@@ -4010,3 +4010,11 @@ BOOLEAN WINAPI RtlIsNtDdiVersionAvailable(ULONG version) + FIXME("stub: %d\n", version); + return FALSE; + } ++ ++/*********************************************************************** ++ * KeGenericCallDpc (NTOSKRNL.EXE.@) ++ */ ++void WINAPI KeGenericCallDpc (PKDEFERRED_ROUTINE routine, void *context) ++{ ++ FIXME("routine %p, context %p stub.\n", routine, context); ++} +diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec +index 1a4f26b96303..d35eb7c60a40 100644 +--- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec ++++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec +@@ -546,6 +546,7 @@ + @ stub KeFindConfigurationNextEntry + @ stub KeFlushEntireTb + @ stdcall KeFlushQueuedDpcs() ++@ stdcall KeGenericCallDpc(ptr ptr) + @ stdcall KeGetCurrentThread() + @ stub KeGetPreviousMode + @ stub KeGetRecommendedSharedDataAlignment +-- +2.26.2 + diff --git a/patches/ntoskrnl.exe-KeGenericCallDpc/0002-ntoskrnl.exe-Add-KeSignalCallDpcSynchronize-stub.patch b/patches/ntoskrnl.exe-KeGenericCallDpc/0002-ntoskrnl.exe-Add-KeSignalCallDpcSynchronize-stub.patch new file mode 100644 index 00000000..ffa1eaa9 --- /dev/null +++ b/patches/ntoskrnl.exe-KeGenericCallDpc/0002-ntoskrnl.exe-Add-KeSignalCallDpcSynchronize-stub.patch @@ -0,0 +1,44 @@ +From 2b2c07cf76724bdf3eb9cf18ba7f3ac82e20dbf9 Mon Sep 17 00:00:00 2001 +From: Alistair Leslie-Hughes +Date: Sun, 24 May 2020 10:09:05 +1000 +Subject: [PATCH 2/3] ntoskrnl.exe: Add KeSignalCallDpcSynchronize stub + +Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49224 +Signed-off-by: Alistair Leslie-Hughes +--- + dlls/ntoskrnl.exe/ntoskrnl.c | 9 +++++++++ + dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 1 + + 2 files changed, 10 insertions(+) + +diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c +index 3975e47ddb08..da20023c968a 100644 +--- a/dlls/ntoskrnl.exe/ntoskrnl.c ++++ b/dlls/ntoskrnl.exe/ntoskrnl.c +@@ -4018,3 +4018,12 @@ void WINAPI KeGenericCallDpc (PKDEFERRED_ROUTINE routine, void *context) + { + FIXME("routine %p, context %p stub.\n", routine, context); + } ++ ++/*********************************************************************** ++ * KeSignalCallDpcSynchronize (NTOSKRNL.EXE.@) ++ */ ++BOOLEAN WINAPI KeSignalCallDpcSynchronize (void *argument) ++{ ++ FIXME("argument %p stub.\n", argument); ++ return TRUE; ++} +diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec +index d35eb7c60a40..bf73b1fe85d0 100644 +--- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec ++++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec +@@ -641,6 +641,7 @@ + @ stub KeSetTimeIncrement + @ stub KeSetTimer + @ stdcall KeSetTimerEx(ptr int64 long ptr) ++@ stdcall KeSignalCallDpcSynchronize(ptr) + @ stub KeStackAttachProcess + @ stub KeSynchronizeExecution + @ stub KeTerminateThread +-- +2.26.2 + diff --git a/patches/ntoskrnl.exe-KeGenericCallDpc/0003-ntoskrnl.exe-Add-KeSignalCallDpcDone-stub.patch b/patches/ntoskrnl.exe-KeGenericCallDpc/0003-ntoskrnl.exe-Add-KeSignalCallDpcDone-stub.patch new file mode 100644 index 00000000..0ca72eca --- /dev/null +++ b/patches/ntoskrnl.exe-KeGenericCallDpc/0003-ntoskrnl.exe-Add-KeSignalCallDpcDone-stub.patch @@ -0,0 +1,43 @@ +From b9b9339169c796a555a69c9833eb5b6976bf80ba Mon Sep 17 00:00:00 2001 +From: Alistair Leslie-Hughes +Date: Sun, 24 May 2020 10:12:28 +1000 +Subject: [PATCH 3/3] ntoskrnl.exe: Add KeSignalCallDpcDone stub + +Signed-off-by: Alistair Leslie-Hughes +--- + dlls/ntoskrnl.exe/ntoskrnl.c | 8 ++++++++ + dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 1 + + 2 files changed, 9 insertions(+) + +diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c +index da20023c968a..2b2169729667 100644 +--- a/dlls/ntoskrnl.exe/ntoskrnl.c ++++ b/dlls/ntoskrnl.exe/ntoskrnl.c +@@ -4027,3 +4027,11 @@ BOOLEAN WINAPI KeSignalCallDpcSynchronize (void *argument) + FIXME("argument %p stub.\n", argument); + return TRUE; + } ++ ++/*********************************************************************** ++ * KeSignalCallDpcDone (NTOSKRNL.EXE.@) ++ */ ++void WINAPI KeSignalCallDpcDone (void *argument) ++{ ++ FIXME("argument %p stub.\n", argument); ++} +\ No newline at end of file +diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec +index bf73b1fe85d0..483f5657a4be 100644 +--- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec ++++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec +@@ -641,6 +641,7 @@ + @ stub KeSetTimeIncrement + @ stub KeSetTimer + @ stdcall KeSetTimerEx(ptr int64 long ptr) ++@ stdcall KeSignalCallDpcDone(ptr) + @ stdcall KeSignalCallDpcSynchronize(ptr) + @ stub KeStackAttachProcess + @ stub KeSynchronizeExecution +-- +2.26.2 + diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 02a6a190..1b40955f 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -213,6 +213,7 @@ patch_enable_all () enable_ntdll_x86_64_SegDs="$1" enable_ntoskrnl_Stubs="$1" enable_ntoskrnl_exe_KdRefreshDebuggerNotPresent="$1" + enable_ntoskrnl_exe_KeGenericCallDpc="$1" enable_ntoskrnl_exe_KeQueryActiveProcessorCountEx="$1" enable_ntoskrnl_exe_KeRevertToUserAffinityThreadEx="$1" enable_ntoskrnl_exe_KeSetSystemAffinityThreadEx="$1" @@ -745,6 +746,9 @@ patch_enable () ntoskrnl.exe-KdRefreshDebuggerNotPresent) enable_ntoskrnl_exe_KdRefreshDebuggerNotPresent="$2" ;; + ntoskrnl.exe-KeGenericCallDpc) + enable_ntoskrnl_exe_KeGenericCallDpc="$2" + ;; ntoskrnl.exe-KeQueryActiveProcessorCountEx) enable_ntoskrnl_exe_KeQueryActiveProcessorCountEx="$2" ;; @@ -4963,6 +4967,22 @@ if test "$enable_ntoskrnl_exe_KdRefreshDebuggerNotPresent" -eq 1; then ) >> "$patchlist" fi +# Patchset ntoskrnl.exe-KeGenericCallDpc +# | +# | Modified files: +# | * dlls/ntoskrnl.exe/ntoskrnl.c, dlls/ntoskrnl.exe/ntoskrnl.exe.spec +# | +if test "$enable_ntoskrnl_exe_KeGenericCallDpc" -eq 1; then + patch_apply ntoskrnl.exe-KeGenericCallDpc/0001-ntoskrnl.exe-Add-KeGenericCallDpc-stub.patch + patch_apply ntoskrnl.exe-KeGenericCallDpc/0002-ntoskrnl.exe-Add-KeSignalCallDpcSynchronize-stub.patch + patch_apply ntoskrnl.exe-KeGenericCallDpc/0003-ntoskrnl.exe-Add-KeSignalCallDpcDone-stub.patch + ( + printf '%s\n' '+ { "Alistair Leslie-Hughes", "ntoskrnl.exe: Add KeGenericCallDpc stub.", 1 },'; + printf '%s\n' '+ { "Alistair Leslie-Hughes", "ntoskrnl.exe: Add KeSignalCallDpcSynchronize stub.", 1 },'; + printf '%s\n' '+ { "Alistair Leslie-Hughes", "ntoskrnl.exe: Add KeSignalCallDpcDone stub.", 1 },'; + ) >> "$patchlist" +fi + # Patchset ntoskrnl.exe-KeQueryActiveProcessorCountEx # | # | This patchset fixes the following Wine bugs: