From b0f0338a956a4680deaeedc988c4782ebf2192bc Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Sat, 8 Nov 2014 07:20:27 +0100 Subject: [PATCH] Added patch with vectored continue handler functions. --- README.md | 3 +- debian/changelog | 1 + patches/Makefile | 19 +++++ ...-stubs-for-vectored-continue-handler.patch | 85 +++++++++++++++++++ .../definition | 4 + 5 files changed, 111 insertions(+), 1 deletion(-) create mode 100644 patches/ntdll-Vectored_Continue_Handler/0001-ntdll-Add-stubs-for-vectored-continue-handler.patch create mode 100644 patches/ntdll-Vectored_Continue_Handler/definition diff --git a/README.md b/README.md index f3b1d963..ee26465f 100644 --- a/README.md +++ b/README.md @@ -39,9 +39,10 @@ Wine. All those differences are also documented on the Included bug fixes and improvements =================================== -**Bugfixes and features included in the next upcoming release [9]:** +**Bugfixes and features included in the next upcoming release [10]:** * Add stub for NtSetLdtEntries/ZwSetLdtEntries ([Wine Bug #26268](https://bugs.winehq.org/show_bug.cgi?id=26268)) +* Add stubs for vectored continue handler ([Wine Bug #30572](https://bugs.winehq.org/show_bug.cgi?id=30572)) * Allow selection of audio device for PulseAudio backend * CoWaitForMultipleHandles shouldn't process window events when APC calls are queued ([Wine Bug #32568](https://bugs.winehq.org/show_bug.cgi?id=32568)) * Exception during start of fr-043 caused by missing DXTn support ([Wine Bug #37391](https://bugs.winehq.org/show_bug.cgi?id=37391)) diff --git a/debian/changelog b/debian/changelog index ed05d0af..0deea3c7 100644 --- a/debian/changelog +++ b/debian/changelog @@ -10,6 +10,7 @@ wine-compholio (1.7.31) UNRELEASED; urgency=low * Added patch to return correct values for GetThreadTimes. * Added patch to align texture dimensions to block size for compressed textures. * Added patch with stub for IoCsqInitialize. + * Added patch with stubs for vectored continue handler functions. * Removed patch for iphlpapi stub functions (accepted upstream). * Removed patches for FindFirstFileExW (accepted upstream). * Removed patches for TLB dependencies lookup in resources (accepted upstream). diff --git a/patches/Makefile b/patches/Makefile index 49e7e70d..27962108 100644 --- a/patches/Makefile +++ b/patches/Makefile @@ -63,6 +63,7 @@ PATCHLIST := \ ntdll-NtSetLdtEntries.ok \ ntdll-Pipe_SpecialCharacters.ok \ ntdll-ThreadTime.ok \ + ntdll-Vectored_Continue_Handler.ok \ ntdll-WRITECOPY.ok \ ntoskrnl-IoCsqInitialize.ok \ ntoskrnl-Irp_Status.ok \ @@ -1014,6 +1015,24 @@ ntdll-ThreadTime.ok: echo '+ { "ntdll-ThreadTime", "Sebastian Lackner", "Return correct values in GetThreadTimes() for all threads." },'; \ ) > ntdll-ThreadTime.ok +# Patchset ntdll-Vectored_Continue_Handler +# | +# | Included patches: +# | * Add stubs for vectored continue handler. [by Austin English] +# | +# | This patchset fixes the following Wine bugs: +# | * [#30572] Add stubs for vectored continue handler +# | +# | Modified files: +# | * dlls/kernel32/kernel32.spec, dlls/ntdll/exception.c, dlls/ntdll/ntdll.spec +# | +.INTERMEDIATE: ntdll-Vectored_Continue_Handler.ok +ntdll-Vectored_Continue_Handler.ok: + $(call APPLY_FILE,ntdll-Vectored_Continue_Handler/0001-ntdll-Add-stubs-for-vectored-continue-handler.patch) + @( \ + echo '+ { "ntdll-Vectored_Continue_Handler", "Austin English", "Add stubs for vectored continue handler." },'; \ + ) > ntdll-Vectored_Continue_Handler.ok + # Patchset ntdll-WRITECOPY # | # | Included patches: diff --git a/patches/ntdll-Vectored_Continue_Handler/0001-ntdll-Add-stubs-for-vectored-continue-handler.patch b/patches/ntdll-Vectored_Continue_Handler/0001-ntdll-Add-stubs-for-vectored-continue-handler.patch new file mode 100644 index 00000000..64a89540 --- /dev/null +++ b/patches/ntdll-Vectored_Continue_Handler/0001-ntdll-Add-stubs-for-vectored-continue-handler.patch @@ -0,0 +1,85 @@ +From ac879ee5145cd109de35035d0d5a147de4479eba Mon Sep 17 00:00:00 2001 +From: Austin English +Date: Sat, 8 Nov 2014 07:14:26 +0100 +Subject: ntdll: Add stubs for vectored continue handler. + +--- + dlls/kernel32/kernel32.spec | 2 ++ + dlls/ntdll/exception.c | 20 ++++++++++++++++++++ + dlls/ntdll/ntdll.spec | 2 ++ + 3 files changed, 24 insertions(+) + +diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec +index 2b01df1..c072780 100644 +--- a/dlls/kernel32/kernel32.spec ++++ b/dlls/kernel32/kernel32.spec +@@ -143,6 +143,7 @@ + # @ stub AddLocalAlternateComputerNameA + # @ stub AddLocalAlternateComputerNameW + @ stdcall AddRefActCtx(ptr) ++@ stdcall AddVectoredContinueHandler(long ptr) ntdll.RtlAddVectoredContinueHandler + @ stdcall AddVectoredExceptionHandler(long ptr) ntdll.RtlAddVectoredExceptionHandler + @ stdcall AllocConsole() + @ stub -i386 AllocLSCallback +@@ -1026,6 +1027,7 @@ + @ stdcall RemoveDirectoryW(wstr) + # @ stub RemoveLocalAlternateComputerNameA + # @ stub RemoveLocalAlternateComputerNameW ++@ stdcall RemoveVectoredContinueHandler(ptr) ntdll.RtlRemoveVectoredContinueHandler + @ stdcall RemoveVectoredExceptionHandler(ptr) ntdll.RtlRemoveVectoredExceptionHandler + @ stdcall ReplaceFile(wstr wstr wstr long ptr ptr) ReplaceFileW + @ stdcall ReplaceFileA(str str str long ptr ptr) +diff --git a/dlls/ntdll/exception.c b/dlls/ntdll/exception.c +index 31d5edd..25770ef 100644 +--- a/dlls/ntdll/exception.c ++++ b/dlls/ntdll/exception.c +@@ -224,6 +224,26 @@ void WINAPI RtlRaiseStatus( NTSTATUS status ) + + + /******************************************************************* ++ * RtlAddVectoredContinueHandler (NTDLL.@) ++ */ ++PVOID WINAPI RtlAddVectoredContinueHandler( ULONG first, PVECTORED_EXCEPTION_HANDLER func ) ++{ ++ FIXME("%u %p stub\n", first, func); ++ return NULL; ++} ++ ++ ++/******************************************************************* ++ * RtlRemoveVectoredContinueHandler (NTDLL.@) ++ */ ++PVOID WINAPI RtlRemoveVectoredContinueHandler( PVOID handler ) ++{ ++ FIXME("%p stub\n", handler); ++ return NULL; ++} ++ ++ ++/******************************************************************* + * RtlAddVectoredExceptionHandler (NTDLL.@) + */ + PVOID WINAPI RtlAddVectoredExceptionHandler( ULONG first, PVECTORED_EXCEPTION_HANDLER func ) +diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec +index 5bac269..7e95969 100644 +--- a/dlls/ntdll/ntdll.spec ++++ b/dlls/ntdll/ntdll.spec +@@ -415,6 +415,7 @@ + @ cdecl -arch=arm,x86_64 RtlAddFunctionTable(ptr long long) + @ stdcall RtlAddRefActivationContext(ptr) + # @ stub RtlAddRefMemoryStream ++@ stdcall RtlAddVectoredContinueHandler(long ptr) + @ stdcall RtlAddVectoredExceptionHandler(long ptr) + # @ stub RtlAddressInSectionTable + @ stdcall RtlAdjustPrivilege(long long long ptr) +@@ -819,6 +820,7 @@ + @ stdcall RtlReleaseSRWLockExclusive(ptr) + @ stdcall RtlReleaseSRWLockShared(ptr) + @ stub RtlRemoteCall ++@ stdcall RtlRemoveVectoredContinueHandler(ptr) + @ stdcall RtlRemoveVectoredExceptionHandler(ptr) + @ stub RtlResetRtlTranslations + @ stdcall RtlRestoreLastWin32Error(long) RtlSetLastWin32Error +-- +2.1.3 + diff --git a/patches/ntdll-Vectored_Continue_Handler/definition b/patches/ntdll-Vectored_Continue_Handler/definition new file mode 100644 index 00000000..f7f8490a --- /dev/null +++ b/patches/ntdll-Vectored_Continue_Handler/definition @@ -0,0 +1,4 @@ +Author: Austin English +Subject: Add stubs for vectored continue handler. +Revision: 1 +Fixes: [30572] Add stubs for vectored continue handler