You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-04-13 14:42:51 -07:00
Compare commits
17 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
f32f8c62ac | ||
|
284d054923 | ||
|
88c8c3688e | ||
|
e26a92bace | ||
|
0c217b7048 | ||
|
c02c8b8c25 | ||
|
9150a8751e | ||
|
aeddc191a7 | ||
|
753c2c9012 | ||
|
28a14dc978 | ||
|
c6e61e267a | ||
|
519fde9b1a | ||
|
e9a4c9a06f | ||
|
28180a60fd | ||
|
9486ca2543 | ||
|
7d2672183d | ||
|
3dcd383186 |
@@ -1,38 +1,17 @@
|
||||
From 81a36b530261731d6020e09770237ae5bf58166d Mon Sep 17 00:00:00 2001
|
||||
From ebe00ceb4f2d24f2611dbec87486d6597a3466a9 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Fri, 2 May 2014 20:46:19 +0200
|
||||
Subject: [PATCH] user32: Decrease minimum SetTimer interval to 5 ms. (try 2)
|
||||
|
||||
---
|
||||
dlls/user32/tests/msg.c | 2 ++
|
||||
dlls/win32u/message.c | 2 +-
|
||||
2 files changed, 3 insertions(+), 1 deletion(-)
|
||||
dlls/win32u/message.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c
|
||||
index 4519da6962d..304a3b87f46 100644
|
||||
--- a/dlls/user32/tests/msg.c
|
||||
+++ b/dlls/user32/tests/msg.c
|
||||
@@ -10709,6 +10709,7 @@ static void test_timers(void)
|
||||
start = GetTickCount();
|
||||
while (GetTickCount()-start < 1001 && GetMessageA(&msg, info.hWnd, 0, 0))
|
||||
DispatchMessageA(&msg);
|
||||
+todo_wine
|
||||
ok(abs(count-TIMER_COUNT_EXPECTED) < TIMER_COUNT_TOLERANCE /* xp */
|
||||
|| broken(abs(count-64) <= TIMER_COUNT_TOLERANCE) /* most common */
|
||||
|| broken(abs(count-43) <= TIMER_COUNT_TOLERANCE) /* w2k3, win8 */,
|
||||
@@ -10779,6 +10780,7 @@ static void test_timers_no_wnd(void)
|
||||
start = GetTickCount();
|
||||
while (GetTickCount()-start < 1001 && GetMessageA(&msg, NULL, 0, 0))
|
||||
DispatchMessageA(&msg);
|
||||
+todo_wine
|
||||
ok(abs(count-TIMER_COUNT_EXPECTED) < TIMER_COUNT_TOLERANCE /* xp */
|
||||
|| broken(abs(count-64) <= TIMER_COUNT_TOLERANCE) /* most common */
|
||||
|| broken(abs(count-43) <= TIMER_COUNT_TOLERANCE) /* w1064v1809 */,
|
||||
diff --git a/dlls/win32u/message.c b/dlls/win32u/message.c
|
||||
index d00178e6aa4..513150a3d61 100644
|
||||
index d2909339983..337d4a2cc1d 100644
|
||||
--- a/dlls/win32u/message.c
|
||||
+++ b/dlls/win32u/message.c
|
||||
@@ -170,7 +170,7 @@ UINT_PTR WINAPI NtUserSetSystemTimer( HWND hwnd, UINT_PTR id, UINT timeout, TIME
|
||||
@@ -3975,7 +3975,7 @@ UINT_PTR WINAPI NtUserSetTimer( HWND hwnd, UINT_PTR id, UINT timeout, TIMERPROC
|
||||
|
||||
if (proc) winproc = alloc_winproc( (WNDPROC)proc, TRUE );
|
||||
|
||||
@@ -42,5 +21,5 @@ index d00178e6aa4..513150a3d61 100644
|
||||
SERVER_START_REQ( set_win_timer )
|
||||
{
|
||||
--
|
||||
2.35.1
|
||||
2.42.0
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From d51057f7c91016d2c6f5c3b21d201f86d7c085b5 Mon Sep 17 00:00:00 2001
|
||||
From 9d274e6d152c3f3961212f3cbd71dc8f14641367 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Mon, 6 Oct 2014 05:06:06 +0200
|
||||
Subject: [PATCH] dbghelp: Always check for debug symbols in BINDIR.
|
||||
@@ -9,7 +9,7 @@ Subject: [PATCH] dbghelp: Always check for debug symbols in BINDIR.
|
||||
2 files changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/dbghelp/Makefile.in b/dlls/dbghelp/Makefile.in
|
||||
index 3657fa7db12..c8114677bc6 100644
|
||||
index 152ef80611a..06ebb65e2af 100644
|
||||
--- a/dlls/dbghelp/Makefile.in
|
||||
+++ b/dlls/dbghelp/Makefile.in
|
||||
@@ -2,7 +2,7 @@ MODULE = dbghelp.dll
|
||||
@@ -19,10 +19,10 @@ index 3657fa7db12..c8114677bc6 100644
|
||||
-EXTRADEFS = -D_IMAGEHLP_SOURCE_
|
||||
+EXTRADEFS = -D_IMAGEHLP_SOURCE_ -DBINDIR="L\"${bindir}\""
|
||||
|
||||
C_SRCS = \
|
||||
SOURCES = \
|
||||
coff.c \
|
||||
diff --git a/dlls/dbghelp/elf_module.c b/dlls/dbghelp/elf_module.c
|
||||
index a2a60752a68..a2bca11048f 100644
|
||||
index 5ada8c70c9b..a9a6303c8d7 100644
|
||||
--- a/dlls/dbghelp/elf_module.c
|
||||
+++ b/dlls/dbghelp/elf_module.c
|
||||
@@ -1457,6 +1457,7 @@ static BOOL elf_search_and_load_file(struct process* pcs, const WCHAR* filename,
|
||||
|
@@ -70,7 +70,7 @@ index 80556e96787..b3b63d7b361 100644
|
||||
}
|
||||
|
||||
+ if (This->pick_record_size > 0)
|
||||
+ heap_free(This->pick_records);
|
||||
+ free(This->pick_records);
|
||||
+
|
||||
TRACE("Releasing render target %p.\n", This->rt_iface);
|
||||
rt_iface = This->rt_iface;
|
||||
@@ -353,7 +353,7 @@ index 13e639eda3f..bb050fe16b8 100644
|
||||
+ {
|
||||
+ if (device->pick_record_size == 0) device->pick_record_size = 1;
|
||||
+ device->pick_record_size *= 2;
|
||||
+ device->pick_records = heap_realloc(device->pick_records,
|
||||
+ device->pick_records = realloc(device->pick_records,
|
||||
+ sizeof(*device->pick_records) * device->pick_record_size);
|
||||
+ }
|
||||
+
|
||||
|
@@ -1,154 +0,0 @@
|
||||
From d32988c911aae73ec81242cd8f6ae37e078d212f Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Fri, 2 Dec 2022 14:41:30 +1100
|
||||
Subject: [PATCH] dmime: Implement IDirectMusicSegment8 Download
|
||||
|
||||
---
|
||||
dlls/dmime/dmime_private.h | 1 +
|
||||
dlls/dmime/performance.c | 7 ++++
|
||||
dlls/dmime/segment.c | 84 +++++++++++++++++++++++++++++++++++++-
|
||||
3 files changed, 91 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/dmime/dmime_private.h b/dlls/dmime/dmime_private.h
|
||||
index c35c52eb066..ca8323fc525 100644
|
||||
--- a/dlls/dmime/dmime_private.h
|
||||
+++ b/dlls/dmime/dmime_private.h
|
||||
@@ -72,6 +72,7 @@ extern void set_audiopath_primary_dsound_buffer(IDirectMusicAudioPath*,IDirectSo
|
||||
|
||||
extern HRESULT segment_state_create(IDirectMusicSegment *segment, MUSIC_TIME start_time,
|
||||
IDirectMusicSegmentState **ret_iface);
|
||||
+extern IDirectSound *get_dsound_interface(IDirectMusicPerformance8*);
|
||||
|
||||
/*****************************************************************************
|
||||
* Auxiliary definitions
|
||||
diff --git a/dlls/dmime/performance.c b/dlls/dmime/performance.c
|
||||
index 9f293358ca6..3658c16c187 100644
|
||||
--- a/dlls/dmime/performance.c
|
||||
+++ b/dlls/dmime/performance.c
|
||||
@@ -251,6 +251,13 @@ static inline struct performance *impl_from_IDirectMusicPerformance8(IDirectMusi
|
||||
return CONTAINING_RECORD(iface, struct performance, IDirectMusicPerformance8_iface);
|
||||
}
|
||||
|
||||
+IDirectSound *get_dsound_interface(IDirectMusicPerformance8* iface)
|
||||
+{
|
||||
+ struct performance *This = impl_from_IDirectMusicPerformance8(iface);
|
||||
+ return This->dsound;
|
||||
+}
|
||||
+
|
||||
+
|
||||
/* IDirectMusicPerformance8 IUnknown part: */
|
||||
static HRESULT WINAPI performance_QueryInterface(IDirectMusicPerformance8 *iface, REFIID riid, void **ret_iface)
|
||||
{
|
||||
diff --git a/dlls/dmime/segment.c b/dlls/dmime/segment.c
|
||||
index af7729f34b9..284564749df 100644
|
||||
--- a/dlls/dmime/segment.c
|
||||
+++ b/dlls/dmime/segment.c
|
||||
@@ -54,6 +54,7 @@ struct segment
|
||||
PCMWAVEFORMAT wave_format;
|
||||
void *wave_data;
|
||||
int data_size;
|
||||
+ IDirectSoundBuffer *buffer;
|
||||
};
|
||||
|
||||
static struct segment *segment_create(void);
|
||||
@@ -114,6 +115,8 @@ static ULONG WINAPI segment_Release(IDirectMusicSegment8 *iface)
|
||||
track_entry_destroy(entry);
|
||||
}
|
||||
|
||||
+ if (This->buffer)
|
||||
+ IDirectSoundBuffer_Release(This->buffer);
|
||||
if (This->wave_data)
|
||||
free(This->wave_data);
|
||||
|
||||
@@ -533,8 +536,87 @@ static HRESULT WINAPI segment_Compose(IDirectMusicSegment8 *iface, MUSIC_TIME mt
|
||||
static HRESULT WINAPI segment_Download(IDirectMusicSegment8 *iface, IUnknown *audio_path)
|
||||
{
|
||||
struct segment *This = impl_from_IDirectMusicSegment8(iface);
|
||||
+ IDirectMusicPerformance8 *perf;
|
||||
+ IDirectMusicAudioPath *audio;
|
||||
+ IDirectSound *dsound;
|
||||
+ HRESULT hr;
|
||||
+ DSBUFFERDESC dsbd = {.dwSize = sizeof(dsbd)};
|
||||
+ void *data;
|
||||
+ DWORD size;
|
||||
+ DWORD buffer = 0;
|
||||
+
|
||||
TRACE("(%p, %p)\n", This, audio_path);
|
||||
- return IDirectMusicSegment8_SetParam(iface, &GUID_DownloadToAudioPath, -1, DMUS_SEG_ALLTRACKS, 0, audio_path);
|
||||
+
|
||||
+ if (!audio_path)
|
||||
+ return E_INVALIDARG;
|
||||
+
|
||||
+ hr = IDirectMusicSegment8_SetParam(iface, &GUID_DownloadToAudioPath, -1, DMUS_SEG_ALLTRACKS, 0, audio_path);
|
||||
+ if (FAILED(hr))
|
||||
+ return hr;
|
||||
+
|
||||
+ if (This->buffer)
|
||||
+ {
|
||||
+ TRACE("Using Cached buffer\n");
|
||||
+ return S_OK;
|
||||
+ }
|
||||
+
|
||||
+ /* pAudioPath can either be IDirectMusicAudioPath or IDirectMusicPerformance */
|
||||
+ hr = IUnknown_QueryInterface(audio_path, &IID_IDirectMusicPerformance8, (void**)&perf);
|
||||
+ if (FAILED(hr))
|
||||
+ {
|
||||
+ TRACE("Checking for IDirectMusicAudioPath interface\n");
|
||||
+ hr = IUnknown_QueryInterface(audio_path, &IID_IDirectMusicAudioPath, (void**)&audio);
|
||||
+ if (FAILED(hr))
|
||||
+ {
|
||||
+ WARN("Cannot query for IDirectMusicAudioPath\n");
|
||||
+ return E_INVALIDARG;
|
||||
+ }
|
||||
+
|
||||
+ IDirectMusicAudioPath_GetObjectInPath(audio, DMUS_PCHANNEL_ALL, DMUS_PATH_PERFORMANCE, buffer, &GUID_NULL,
|
||||
+ 0, &IID_IDirectMusicPerformance, (void**)&perf);
|
||||
+ IDirectMusicAudioPath_Release(audio);
|
||||
+ }
|
||||
+
|
||||
+ if (!perf)
|
||||
+ {
|
||||
+ ERR("Failed to get IDirectMusicPerformance interface\n");
|
||||
+ return E_INVALIDARG;
|
||||
+ }
|
||||
+
|
||||
+ dsound = get_dsound_interface(perf);
|
||||
+ if (!dsound)
|
||||
+ {
|
||||
+ ERR("Failed get_dsound_interface\n");
|
||||
+ return E_INVALIDARG;
|
||||
+ }
|
||||
+
|
||||
+ if (This->data_size == 0)
|
||||
+ {
|
||||
+ FIXME("No wave data skipping\n");
|
||||
+ return S_OK;
|
||||
+ }
|
||||
+
|
||||
+ dsbd.dwBufferBytes = This->data_size;
|
||||
+ dsbd.lpwfxFormat = (WAVEFORMATEX*)&This->wave_format;
|
||||
+
|
||||
+ hr = IDirectSound_CreateSoundBuffer(dsound, &dsbd, &This->buffer, NULL);
|
||||
+ if (FAILED(hr))
|
||||
+ {
|
||||
+ ERR("IDirectSound_CreateSoundBuffer failed 0x%08lx\n", hr);
|
||||
+ return E_INVALIDARG;
|
||||
+ }
|
||||
+
|
||||
+ TRACE("CreateSoundBuffer successful\n");
|
||||
+
|
||||
+ hr = IDirectSoundBuffer_Lock(This->buffer, 0, This->data_size, &data, &size, NULL, 0, 0);
|
||||
+ TRACE("IDirectSoundBuffer_Lock hr 0x%08lx\n", hr);
|
||||
+
|
||||
+ memcpy(data, This->wave_data, This->data_size);
|
||||
+
|
||||
+ hr = IDirectSoundBuffer_Unlock(This->buffer, data, This->data_size, NULL, 0);
|
||||
+ TRACE("IDirectSoundBuffer_Unlock hr 0x%08lx\n", hr);
|
||||
+
|
||||
+ return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI segment_Unload(IDirectMusicSegment8 *iface, IUnknown *audio_path)
|
||||
--
|
||||
2.42.0
|
||||
|
@@ -1,67 +0,0 @@
|
||||
From b9c561a99b7034e3cac64ab85e4d50a6fb0c304c Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Mon, 12 Dec 2022 15:20:10 +1100
|
||||
Subject: [PATCH] dmime: Play a sound in IDirectMusicPerformance8 PlaySegmentEx
|
||||
|
||||
---
|
||||
dlls/dmime/dmime_private.h | 1 +
|
||||
dlls/dmime/performance.c | 6 ++++++
|
||||
dlls/dmime/segment.c | 6 ++++++
|
||||
3 files changed, 13 insertions(+)
|
||||
|
||||
diff --git a/dlls/dmime/dmime_private.h b/dlls/dmime/dmime_private.h
|
||||
index ca8323fc525..2b4537233fc 100644
|
||||
--- a/dlls/dmime/dmime_private.h
|
||||
+++ b/dlls/dmime/dmime_private.h
|
||||
@@ -73,6 +73,7 @@ extern void set_audiopath_primary_dsound_buffer(IDirectMusicAudioPath*,IDirectSo
|
||||
extern HRESULT segment_state_create(IDirectMusicSegment *segment, MUSIC_TIME start_time,
|
||||
IDirectMusicSegmentState **ret_iface);
|
||||
extern IDirectSound *get_dsound_interface(IDirectMusicPerformance8*);
|
||||
+extern IDirectSoundBuffer *get_segment_buffer(IDirectMusicSegment8 *iface);
|
||||
|
||||
/*****************************************************************************
|
||||
* Auxiliary definitions
|
||||
diff --git a/dlls/dmime/performance.c b/dlls/dmime/performance.c
|
||||
index 3658c16c187..14831e72ba3 100644
|
||||
--- a/dlls/dmime/performance.c
|
||||
+++ b/dlls/dmime/performance.c
|
||||
@@ -1078,6 +1078,7 @@ static HRESULT WINAPI performance_PlaySegmentEx(IDirectMusicPerformance8 *iface,
|
||||
IDirectMusicSegmentState *state;
|
||||
IDirectMusicSegment *segment;
|
||||
HRESULT hr;
|
||||
+ IDirectSoundBuffer *buffer;
|
||||
|
||||
FIXME("(%p, %p, %s, %p, %#lx, %I64d, %p, %p, %p): stub\n", This, source, debugstr_w(segment_name),
|
||||
transition, segment_flags, start_time, segment_state, from, audio_path);
|
||||
@@ -1096,6 +1097,11 @@ static HRESULT WINAPI performance_PlaySegmentEx(IDirectMusicPerformance8 *iface,
|
||||
IDirectMusicSegmentState_AddRef(state);
|
||||
}
|
||||
|
||||
+ buffer = get_segment_buffer(segment);
|
||||
+
|
||||
+ if (segment)
|
||||
+ hr = IDirectSoundBuffer_Play(buffer, 0, 0, 0);
|
||||
+
|
||||
IDirectMusicSegmentState_Release(state);
|
||||
IDirectMusicSegment_Release(segment);
|
||||
return hr;
|
||||
diff --git a/dlls/dmime/segment.c b/dlls/dmime/segment.c
|
||||
index 284564749df..af76258c979 100644
|
||||
--- a/dlls/dmime/segment.c
|
||||
+++ b/dlls/dmime/segment.c
|
||||
@@ -64,6 +64,12 @@ static inline struct segment *impl_from_IDirectMusicSegment8(IDirectMusicSegment
|
||||
return CONTAINING_RECORD(iface, struct segment, IDirectMusicSegment8_iface);
|
||||
}
|
||||
|
||||
+IDirectSoundBuffer *get_segment_buffer(IDirectMusicSegment8 *iface)
|
||||
+{
|
||||
+ struct segment *This = impl_from_IDirectMusicSegment8(iface);
|
||||
+ return This->buffer;
|
||||
+}
|
||||
+
|
||||
static HRESULT WINAPI segment_QueryInterface(IDirectMusicSegment8 *iface, REFIID riid, void **ret_iface)
|
||||
{
|
||||
struct segment *This = impl_from_IDirectMusicSegment8(iface);
|
||||
--
|
||||
2.42.0
|
||||
|
@@ -1,14 +0,0 @@
|
||||
Fixes: [48220] dmime: Handle basic loading of Wave files and playing them.
|
||||
Fixes: [61322] dmine: No Sound in Black Rockman Shooter.
|
||||
Fixes: [34751] dmime: Aura: Fate of the Ages: sounds aren't played, but music works fine
|
||||
Fixes: [9027] dmime: No sound for rise of nations - all versions.
|
||||
|
||||
Disabled: True
|
||||
# Also
|
||||
# - Cloning Clyde demo
|
||||
|
||||
# Doesnt fix
|
||||
# The following are known not to work, at the moment.
|
||||
# [31586] : Myst sounds (Voices)
|
||||
# [30969] : Tron 2.0 Background music
|
||||
# [32896] : Serious Sam: The Random Encounter
|
@@ -1,7 +1,7 @@
|
||||
From 2a8ffcea70c41f013660d2b6168ab694c70246c0 Mon Sep 17 00:00:00 2001
|
||||
From 8caf8262a8ae8b5f0275172a62d807240d86968d Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Sun, 29 Aug 2021 13:26:53 +1000
|
||||
Subject: [PATCH] fltmgr.sys: Implement FltBuildDefaultSecurityDescriptor
|
||||
Subject: [PATCH 1/3] fltmgr.sys: Implement FltBuildDefaultSecurityDescriptor
|
||||
|
||||
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
---
|
||||
@@ -45,7 +45,7 @@ index 39ce6798178..8943b9f85cf 100644
|
||||
@ stub FltGetBottomInstance
|
||||
@ stub FltGetContexts
|
||||
diff --git a/dlls/fltmgr.sys/main.c b/dlls/fltmgr.sys/main.c
|
||||
index e1016a4989c..68f242ab8e8 100644
|
||||
index e1016a4989c..9a85f4b6c82 100644
|
||||
--- a/dlls/fltmgr.sys/main.c
|
||||
+++ b/dlls/fltmgr.sys/main.c
|
||||
@@ -23,7 +23,6 @@
|
||||
@@ -132,9 +132,8 @@ index e1016a4989c..68f242ab8e8 100644
|
||||
+
|
||||
+void WINAPI FltFreeSecurityDescriptor(PSECURITY_DESCRIPTOR descriptor)
|
||||
+{
|
||||
+ RtlFreeHeap(GetProcessHeap(), 0, descriptor);
|
||||
+ ExFreePool(descriptor);
|
||||
+}
|
||||
\ No newline at end of file
|
||||
diff --git a/include/ddk/fltkernel.h b/include/ddk/fltkernel.h
|
||||
index 49c9d55dbaa..e5483d5a3fa 100644
|
||||
--- a/include/ddk/fltkernel.h
|
||||
@@ -150,5 +149,5 @@ index 49c9d55dbaa..e5483d5a3fa 100644
|
||||
NTSTATUS WINAPI FltRegisterFilter(PDRIVER_OBJECT, const FLT_REGISTRATION *, PFLT_FILTER *);
|
||||
NTSTATUS WINAPI FltStartFiltering(PFLT_FILTER);
|
||||
--
|
||||
2.40.1
|
||||
2.42.0
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 9cb5114cbf5af7c360ffb653fc286b8bf9e21db3 Mon Sep 17 00:00:00 2001
|
||||
From c1af142bac149b296b2dea06cd99c13e0f8814c9 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Mon, 30 Aug 2021 15:15:35 +1000
|
||||
Subject: [PATCH 2/3] fltmgr.sys: Create import library
|
||||
@@ -9,7 +9,7 @@ Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/dlls/fltmgr.sys/Makefile.in b/dlls/fltmgr.sys/Makefile.in
|
||||
index bb1f34b4896..5540df35d6a 100644
|
||||
index ae0e812cb22..ae02da9b5d6 100644
|
||||
--- a/dlls/fltmgr.sys/Makefile.in
|
||||
+++ b/dlls/fltmgr.sys/Makefile.in
|
||||
@@ -1,4 +1,5 @@
|
||||
@@ -19,5 +19,5 @@ index bb1f34b4896..5540df35d6a 100644
|
||||
IMPORTS = ntoskrnl
|
||||
|
||||
--
|
||||
2.40.1
|
||||
2.42.0
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 8d12d4dac0cbc7194d11e398b4d3371bef8a1952 Mon Sep 17 00:00:00 2001
|
||||
From c69247afcbd83af223f471342c67bc06deeffda0 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Mon, 30 Aug 2021 15:16:06 +1000
|
||||
Subject: [PATCH] ntoskrnl.exe: Add FltBuildDefaultSecurityDescriptor test
|
||||
@@ -6,11 +6,11 @@ Subject: [PATCH] ntoskrnl.exe: Add FltBuildDefaultSecurityDescriptor test
|
||||
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
---
|
||||
dlls/ntoskrnl.exe/tests/Makefile.in | 2 +-
|
||||
dlls/ntoskrnl.exe/tests/driver.c | 65 +++++++++++++++++++++++++++++
|
||||
2 files changed, 66 insertions(+), 1 deletion(-)
|
||||
dlls/ntoskrnl.exe/tests/driver.c | 81 +++++++++++++++++++++++++++++
|
||||
2 files changed, 82 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/ntoskrnl.exe/tests/Makefile.in b/dlls/ntoskrnl.exe/tests/Makefile.in
|
||||
index ab1db85adbb..9c89e44e70a 100644
|
||||
index f610df6a947..97dee8b25cf 100644
|
||||
--- a/dlls/ntoskrnl.exe/tests/Makefile.in
|
||||
+++ b/dlls/ntoskrnl.exe/tests/Makefile.in
|
||||
@@ -1,7 +1,7 @@
|
||||
@@ -23,10 +23,10 @@ index ab1db85adbb..9c89e44e70a 100644
|
||||
driver2_IMPORTS = winecrt0 ntoskrnl hal
|
||||
driver2_EXTRADLLFLAGS = -nodefaultlibs -nostartfiles -Wl,--subsystem,native
|
||||
diff --git a/dlls/ntoskrnl.exe/tests/driver.c b/dlls/ntoskrnl.exe/tests/driver.c
|
||||
index c8797e8d8e0..168b47941e8 100644
|
||||
index ea4bd03ee44..844a181472c 100644
|
||||
--- a/dlls/ntoskrnl.exe/tests/driver.c
|
||||
+++ b/dlls/ntoskrnl.exe/tests/driver.c
|
||||
@@ -32,6 +32,7 @@
|
||||
@@ -36,6 +36,7 @@
|
||||
#include "ddk/ntddk.h"
|
||||
#include "ddk/ntifs.h"
|
||||
#include "ddk/wdm.h"
|
||||
@@ -34,7 +34,7 @@ index c8797e8d8e0..168b47941e8 100644
|
||||
|
||||
#include "driver.h"
|
||||
|
||||
@@ -2372,6 +2373,69 @@ static void test_default_modules(void)
|
||||
@@ -2393,6 +2394,85 @@ static void test_default_modules(void)
|
||||
ok(dxgmms1, "Failed to find dxgmms1.sys\n");
|
||||
}
|
||||
|
||||
@@ -47,10 +47,17 @@ index c8797e8d8e0..168b47941e8 100644
|
||||
+ PACL acl = NULL;
|
||||
+ PACCESS_ALLOWED_ACE ace;
|
||||
+ SID_IDENTIFIER_AUTHORITY auth = { SECURITY_NULL_SID_AUTHORITY };
|
||||
+ PSID sid1, sid2;
|
||||
+ SID_IDENTIFIER_AUTHORITY authwine7 = { SECURITY_NT_AUTHORITY };
|
||||
+ PSID sid1, sid2, sidwin7;
|
||||
+ BOOL ret;
|
||||
+
|
||||
+ status = FltBuildDefaultSecurityDescriptor(&sd, STANDARD_RIGHTS_ALL);
|
||||
+ ok(status == STATUS_SUCCESS, "got %#lx\n", status);
|
||||
+ if (status != STATUS_SUCCESS)
|
||||
+ {
|
||||
+ win_skip("Skipping FltBuildDefaultSecurityDescriptor tests\n");
|
||||
+ return;
|
||||
+ }
|
||||
+ ok(sd != NULL, "Failed to return descriptor\n");
|
||||
+
|
||||
+ status = RtlGetGroupSecurityDescriptor(sd, &group, &isdefault);
|
||||
@@ -67,10 +74,17 @@ index c8797e8d8e0..168b47941e8 100644
|
||||
+ ok(acl->AceCount == 2, "got %d\n", acl->AceCount);
|
||||
+
|
||||
+ sid1 = ExAllocatePool(NonPagedPool, RtlLengthRequiredSid(2));
|
||||
+ RtlInitializeSid(sid1, &auth, 2);
|
||||
+ status = RtlInitializeSid(sid1, &auth, 2);
|
||||
+ ok(status == STATUS_SUCCESS, "got %#lx\n", status);
|
||||
+ *RtlSubAuthoritySid(sid1, 0) = SECURITY_BUILTIN_DOMAIN_RID;
|
||||
+ *RtlSubAuthoritySid(sid1, 1) = DOMAIN_GROUP_RID_ADMINS;
|
||||
+
|
||||
+ sidwin7 = ExAllocatePool(NonPagedPool, RtlLengthRequiredSid(2));
|
||||
+ status = RtlInitializeSid(sidwin7, &authwine7, 2);
|
||||
+ ok(status == STATUS_SUCCESS, "got %#lx\n", status);
|
||||
+ *RtlSubAuthoritySid(sidwin7, 0) = SECURITY_BUILTIN_DOMAIN_RID;
|
||||
+ *RtlSubAuthoritySid(sidwin7, 1) = DOMAIN_ALIAS_RID_ADMINS;
|
||||
+
|
||||
+ sid2 = ExAllocatePool(NonPagedPool, RtlLengthRequiredSid(1));
|
||||
+ RtlInitializeSid(sid2, &auth, 1);
|
||||
+ *RtlSubAuthoritySid(sid2, 0) = SECURITY_LOCAL_SYSTEM_RID;
|
||||
@@ -83,7 +97,8 @@ index c8797e8d8e0..168b47941e8 100644
|
||||
+ ok(ace->Header.AceFlags == 0, "got %#x\n", ace->Header.AceFlags);
|
||||
+ ok(ace->Mask == STANDARD_RIGHTS_ALL, "got %#lx\n", ace->Mask);
|
||||
+
|
||||
+ ok(RtlEqualSid(sid1, (PSID)&ace->SidStart), "SID not equal\n");
|
||||
+ ret = RtlEqualSid(sid1, (PSID)&ace->SidStart) || RtlEqualSid(sidwin7, (PSID)&ace->SidStart);
|
||||
+ ok(ret, "SID not equal\n");
|
||||
+
|
||||
+ /* SECURITY_LOCAL_SYSTEM_RID */
|
||||
+ status = RtlGetAce(acl, 1, (void**)&ace);
|
||||
@@ -93,7 +108,8 @@ index c8797e8d8e0..168b47941e8 100644
|
||||
+ ok(ace->Header.AceFlags == 0, "got %#x\n", ace->Header.AceFlags);
|
||||
+ ok(ace->Mask == STANDARD_RIGHTS_ALL, "got %#lx\n", ace->Mask);
|
||||
+
|
||||
+ ok(RtlEqualSid(sid2, (PSID)&ace->SidStart), "SID not equal\n");
|
||||
+ ret = RtlEqualSid(sid2, (PSID)&ace->SidStart) || RtlEqualSid(sidwin7, (PSID)&ace->SidStart);
|
||||
+ ok(ret, "SID not equal\n");
|
||||
+
|
||||
+ ExFreePool(sid1);
|
||||
+ ExFreePool(sid2);
|
||||
@@ -104,7 +120,7 @@ index c8797e8d8e0..168b47941e8 100644
|
||||
static NTSTATUS main_test(DEVICE_OBJECT *device, IRP *irp, IO_STACK_LOCATION *stack)
|
||||
{
|
||||
void *buffer = irp->AssociatedIrp.SystemBuffer;
|
||||
@@ -2417,6 +2481,7 @@ static NTSTATUS main_test(DEVICE_OBJECT *device, IRP *irp, IO_STACK_LOCATION *st
|
||||
@@ -2438,6 +2518,7 @@ static NTSTATUS main_test(DEVICE_OBJECT *device, IRP *irp, IO_STACK_LOCATION *st
|
||||
test_process_memory(test_input);
|
||||
test_permanence();
|
||||
test_driver_object_extension();
|
||||
@@ -113,5 +129,5 @@ index c8797e8d8e0..168b47941e8 100644
|
||||
IoMarkIrpPending(irp);
|
||||
IoQueueWorkItem(work_item, main_test_task, DelayedWorkQueue, irp);
|
||||
--
|
||||
2.40.1
|
||||
2.42.0
|
||||
|
||||
|
@@ -1,40 +1,38 @@
|
||||
From c62655b9d54ce8b692bd84d41abe09cc40ae10e1 Mon Sep 17 00:00:00 2001
|
||||
From f76d5c65c07a184d56a9be4e8f77fa92886bb309 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Mon, 5 Sep 2016 15:31:29 +0200
|
||||
Subject: [PATCH] inseng: Implement CIF reader and download functions.
|
||||
|
||||
FIXME: Needs splitting.
|
||||
---
|
||||
dlls/inseng/Makefile.in | 7 +-
|
||||
dlls/inseng/Makefile.in | 4 +-
|
||||
dlls/inseng/icif.c | 1745 ++++++++++++++++++++++++++++++++++
|
||||
dlls/inseng/inf.c | 443 +++++++++
|
||||
dlls/inseng/inseng.spec | 4 +-
|
||||
dlls/inseng/inseng_main.c | 990 ++++++++++++++++++-
|
||||
dlls/inseng/inseng_main.c | 989 ++++++++++++++++++-
|
||||
dlls/inseng/inseng_private.h | 79 ++
|
||||
include/inseng.idl | 276 +++++-
|
||||
7 files changed, 3490 insertions(+), 54 deletions(-)
|
||||
7 files changed, 3488 insertions(+), 52 deletions(-)
|
||||
create mode 100644 dlls/inseng/icif.c
|
||||
create mode 100644 dlls/inseng/inf.c
|
||||
create mode 100644 dlls/inseng/inseng_private.h
|
||||
|
||||
diff --git a/dlls/inseng/Makefile.in b/dlls/inseng/Makefile.in
|
||||
index 0217203791a..ba2388c97ed 100644
|
||||
index 40eda55661a..72fa3533930 100644
|
||||
--- a/dlls/inseng/Makefile.in
|
||||
+++ b/dlls/inseng/Makefile.in
|
||||
@@ -1,8 +1,11 @@
|
||||
@@ -1,8 +1,10 @@
|
||||
MODULE = inseng.dll
|
||||
-IMPORTS = uuid ole32 advapi32
|
||||
+IMPORTS = uuid ole32 advapi32 urlmon shlwapi
|
||||
|
||||
EXTRADLLFLAGS = -Wb,--prefer-native
|
||||
|
||||
-C_SRCS = inseng_main.c
|
||||
+C_SRCS = \
|
||||
SOURCES = \
|
||||
+ icif.c \
|
||||
+ inf.c \
|
||||
+ inseng_main.c
|
||||
|
||||
IDL_SRCS = inseng_classes.idl
|
||||
inseng_classes.idl \
|
||||
inseng_main.c
|
||||
diff --git a/dlls/inseng/icif.c b/dlls/inseng/icif.c
|
||||
new file mode 100644
|
||||
index 00000000000..27f6f6dfd93
|
||||
@@ -2249,7 +2247,7 @@ index 82c0b4d5fe1..7ae46fad3a7 100644
|
||||
+@ stdcall GetICifRWFileFromFile(ptr str)
|
||||
@ stub PurgeDownloadDirectory
|
||||
diff --git a/dlls/inseng/inseng_main.c b/dlls/inseng/inseng_main.c
|
||||
index c72a12955b8..87d11472ff0 100644
|
||||
index f7ce3f173c2..81eb1ec4f13 100644
|
||||
--- a/dlls/inseng/inseng_main.c
|
||||
+++ b/dlls/inseng/inseng_main.c
|
||||
@@ -2,6 +2,7 @@
|
||||
@@ -2260,7 +2258,7 @@ index c72a12955b8..87d11472ff0 100644
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
@@ -28,17 +29,68 @@
|
||||
@@ -28,16 +29,68 @@
|
||||
#include "winuser.h"
|
||||
#include "ole2.h"
|
||||
#include "rpcproxy.h"
|
||||
@@ -2272,7 +2270,6 @@ index c72a12955b8..87d11472ff0 100644
|
||||
+#include "inseng_private.h"
|
||||
+
|
||||
#include "wine/debug.h"
|
||||
-#include "wine/heap.h"
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(inseng);
|
||||
|
||||
@@ -2330,7 +2327,7 @@ index c72a12955b8..87d11472ff0 100644
|
||||
};
|
||||
|
||||
static inline InstallEngine *impl_from_IInstallEngine2(IInstallEngine2 *iface)
|
||||
@@ -46,6 +98,250 @@ static inline InstallEngine *impl_from_IInstallEngine2(IInstallEngine2 *iface)
|
||||
@@ -45,6 +98,250 @@ static inline InstallEngine *impl_from_IInstallEngine2(IInstallEngine2 *iface)
|
||||
return CONTAINING_RECORD(iface, InstallEngine, IInstallEngine2_iface);
|
||||
}
|
||||
|
||||
@@ -2581,7 +2578,7 @@ index c72a12955b8..87d11472ff0 100644
|
||||
static HRESULT WINAPI InstallEngine_QueryInterface(IInstallEngine2 *iface, REFIID riid, void **ppv)
|
||||
{
|
||||
InstallEngine *This = impl_from_IInstallEngine2(iface);
|
||||
@@ -59,13 +355,16 @@ static HRESULT WINAPI InstallEngine_QueryInterface(IInstallEngine2 *iface, REFII
|
||||
@@ -58,13 +355,16 @@ static HRESULT WINAPI InstallEngine_QueryInterface(IInstallEngine2 *iface, REFII
|
||||
}else if(IsEqualGUID(&IID_IInstallEngine2, riid)) {
|
||||
TRACE("(%p)->(IID_IInstallEngine2 %p)\n", This, ppv);
|
||||
*ppv = &This->IInstallEngine2_iface;
|
||||
@@ -2600,7 +2597,7 @@ index c72a12955b8..87d11472ff0 100644
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
@@ -86,181 +385,726 @@ static ULONG WINAPI InstallEngine_Release(IInstallEngine2 *iface)
|
||||
@@ -85,181 +385,726 @@ static ULONG WINAPI InstallEngine_Release(IInstallEngine2 *iface)
|
||||
|
||||
TRACE("(%p) ref=%ld\n", This, ref);
|
||||
|
||||
@@ -2610,9 +2607,9 @@ index c72a12955b8..87d11472ff0 100644
|
||||
+ if (This->icif)
|
||||
+ ICifFile_Release(This->icif);
|
||||
+
|
||||
+ heap_free(This->baseurl);
|
||||
+ heap_free(This->downloaddir);
|
||||
heap_free(This);
|
||||
+ free(This->baseurl);
|
||||
+ free(This->downloaddir);
|
||||
free(This);
|
||||
+ }
|
||||
|
||||
return ref;
|
||||
@@ -3363,7 +3360,7 @@ index c72a12955b8..87d11472ff0 100644
|
||||
InstallEngine_QueryInterface,
|
||||
InstallEngine_AddRef,
|
||||
InstallEngine_Release,
|
||||
@@ -290,6 +1134,70 @@ static const IInstallEngine2Vtbl InstallEngine2Vtbl = {
|
||||
@@ -289,6 +1134,70 @@ static const IInstallEngine2Vtbl InstallEngine2Vtbl = {
|
||||
InstallEngine2_GetICifFile
|
||||
};
|
||||
|
||||
@@ -3434,12 +3431,12 @@ index c72a12955b8..87d11472ff0 100644
|
||||
static HRESULT WINAPI ClassFactory_QueryInterface(IClassFactory *iface, REFIID riid, void **ppv)
|
||||
{
|
||||
*ppv = NULL;
|
||||
@@ -334,12 +1242,14 @@ static HRESULT WINAPI InstallEngineCF_CreateInstance(IClassFactory *iface, IUnkn
|
||||
@@ -333,12 +1242,14 @@ static HRESULT WINAPI InstallEngineCF_CreateInstance(IClassFactory *iface, IUnkn
|
||||
|
||||
TRACE("(%p %s %p)\n", outer, debugstr_guid(riid), ppv);
|
||||
|
||||
- engine = heap_alloc(sizeof(*engine));
|
||||
+ engine = heap_alloc_zero(sizeof(*engine));
|
||||
- engine = malloc(sizeof(*engine));
|
||||
+ engine = calloc(1, sizeof(*engine));
|
||||
if(!engine)
|
||||
return E_OUTOFMEMORY;
|
||||
|
||||
@@ -3862,5 +3859,5 @@ index 8a3f4c4d270..82927418a99 100644
|
||||
+cpp_quote("HRESULT WINAPI GetICifFileFromFile(ICifFile **, const char *);")
|
||||
+cpp_quote("HRESULT WINAPI GetICifRWFileFromFile(ICifRWFile **, const char *);")
|
||||
--
|
||||
2.34.1
|
||||
2.42.0
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From e11874a28a68cd3cd9c031f475d59435d94aa3fc Mon Sep 17 00:00:00 2001
|
||||
From b26ba4d86df312d28bc2422ed1e544b058e4aacd Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
|
||||
Date: Tue, 8 Sep 2020 18:43:52 +0200
|
||||
Subject: [PATCH] msxml3: Implement FreeThreadedXMLHTTP60.
|
||||
@@ -16,7 +16,7 @@ Update from Gijs Vermeulen <gijsvrm@gmail.com>
|
||||
8 files changed, 915 insertions(+), 16 deletions(-)
|
||||
|
||||
diff --git a/dlls/msxml3/Makefile.in b/dlls/msxml3/Makefile.in
|
||||
index 2bf789732da..e2d737599b1 100644
|
||||
index 7e59a223143..5044c4e2c79 100644
|
||||
--- a/dlls/msxml3/Makefile.in
|
||||
+++ b/dlls/msxml3/Makefile.in
|
||||
@@ -1,5 +1,5 @@
|
||||
@@ -25,7 +25,7 @@ index 2bf789732da..e2d737599b1 100644
|
||||
+IMPORTS = $(XSLT_PE_LIBS) $(XML2_PE_LIBS) uuid urlmon shlwapi oleaut32 ole32 user32 advapi32 rtworkq
|
||||
EXTRAINCL = $(XSLT_PE_CFLAGS) $(XML2_PE_CFLAGS)
|
||||
|
||||
C_SRCS = \
|
||||
SOURCES = \
|
||||
diff --git a/dlls/msxml3/factory.c b/dlls/msxml3/factory.c
|
||||
index 243ee379712..323c7b49848 100644
|
||||
--- a/dlls/msxml3/factory.c
|
||||
@@ -1101,5 +1101,5 @@ index 7396826a1f6..b2d8bd3b337 100644
|
||||
helpstring("XML DOM Document 6.0"),
|
||||
progid("Msxml2.DOMDocument.6.0"),
|
||||
--
|
||||
2.41.0
|
||||
2.42.0
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 3242c225381a5beb2690402b8e37179bb9f3e71f Mon Sep 17 00:00:00 2001
|
||||
From fa493586583e4dd534b01b72812c7ab79c0aecca Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sun, 17 Jan 2016 00:50:50 +0100
|
||||
Subject: [PATCH] ntdll/tests: Add basic tests for RtlQueryPackageIdentity.
|
||||
@@ -9,7 +9,7 @@ Subject: [PATCH] ntdll/tests: Add basic tests for RtlQueryPackageIdentity.
|
||||
2 files changed, 81 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/ntdll/tests/Makefile.in b/dlls/ntdll/tests/Makefile.in
|
||||
index 90deb5865f8..428ebde23b3 100644
|
||||
index 3ca77a03053..7508e1ad796 100644
|
||||
--- a/dlls/ntdll/tests/Makefile.in
|
||||
+++ b/dlls/ntdll/tests/Makefile.in
|
||||
@@ -1,5 +1,5 @@
|
||||
@@ -17,10 +17,10 @@ index 90deb5865f8..428ebde23b3 100644
|
||||
-IMPORTS = user32 advapi32
|
||||
+IMPORTS = user32 ole32 advapi32
|
||||
|
||||
C_SRCS = \
|
||||
SOURCES = \
|
||||
atom.c \
|
||||
diff --git a/dlls/ntdll/tests/rtl.c b/dlls/ntdll/tests/rtl.c
|
||||
index 117d9eed067..1255ad93dd8 100644
|
||||
index 88f62b0b588..8ca339dde0f 100644
|
||||
--- a/dlls/ntdll/tests/rtl.c
|
||||
+++ b/dlls/ntdll/tests/rtl.c
|
||||
@@ -29,6 +29,9 @@
|
||||
@@ -53,7 +53,7 @@ index 117d9eed067..1255ad93dd8 100644
|
||||
pLdrRegisterDllNotification = (void *)GetProcAddress(hntdll, "LdrRegisterDllNotification");
|
||||
pLdrUnregisterDllNotification = (void *)GetProcAddress(hntdll, "LdrUnregisterDllNotification");
|
||||
}
|
||||
@@ -3609,6 +3618,76 @@ static void test_RtlFirstFreeAce(void)
|
||||
@@ -3611,6 +3620,76 @@ static void test_RtlFirstFreeAce(void)
|
||||
HeapFree(GetProcessHeap(), 0, acl);
|
||||
}
|
||||
|
||||
@@ -130,7 +130,7 @@ index 117d9eed067..1255ad93dd8 100644
|
||||
static void test_RtlInitializeSid(void)
|
||||
{
|
||||
SID_IDENTIFIER_AUTHORITY sid_ident = { SECURITY_NT_AUTHORITY };
|
||||
@@ -3688,6 +3767,7 @@ START_TEST(rtl)
|
||||
@@ -3690,6 +3769,7 @@ START_TEST(rtl)
|
||||
test_RtlInitializeCriticalSectionEx();
|
||||
test_RtlLeaveCriticalSection();
|
||||
test_LdrEnumerateLoadedModules();
|
||||
@@ -139,5 +139,5 @@ index 117d9eed067..1255ad93dd8 100644
|
||||
test_LdrRegisterDllNotification();
|
||||
test_DbgPrint();
|
||||
--
|
||||
2.40.1
|
||||
2.42.0
|
||||
|
||||
|
@@ -1,144 +0,0 @@
|
||||
From ed725c78b5deb6c482a60ac26eda5f5d58ab531c Mon Sep 17 00:00:00 2001
|
||||
From: Paul Gofman <pgofman@codeweavers.com>
|
||||
Date: Tue, 26 Oct 2021 19:07:26 +0300
|
||||
Subject: [PATCH] ntdll: Don't use Wine frames during exception processing on
|
||||
x64.
|
||||
|
||||
CW-Bug-ID: #19570
|
||||
---
|
||||
dlls/ntdll/signal_x86_64.c | 65 +++++++++++++++++++++++++++-----------
|
||||
1 file changed, 46 insertions(+), 19 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c
|
||||
index ac543338893..f2c7cad5675 100644
|
||||
--- a/dlls/ntdll/signal_x86_64.c
|
||||
+++ b/dlls/ntdll/signal_x86_64.c
|
||||
@@ -348,15 +348,32 @@ __ASM_GLOBAL_FUNC( RtlCaptureContext,
|
||||
"fxsave 0x100(%rcx)\n\t" /* context->FltSave */
|
||||
"ret" );
|
||||
|
||||
-static DWORD __cdecl nested_exception_handler( EXCEPTION_RECORD *rec, EXCEPTION_REGISTRATION_RECORD *frame,
|
||||
+DWORD __cdecl nested_exception_handler( EXCEPTION_RECORD *rec, EXCEPTION_REGISTRATION_RECORD *frame,
|
||||
CONTEXT *context, EXCEPTION_REGISTRATION_RECORD **dispatcher )
|
||||
{
|
||||
+ TRACE( "exception flags %#x.\n", rec->ExceptionFlags );
|
||||
+
|
||||
if (!(rec->ExceptionFlags & (EH_UNWINDING | EH_EXIT_UNWIND)))
|
||||
- rec->ExceptionFlags |= EH_NESTED_CALL;
|
||||
+ return ExceptionNestedException;
|
||||
|
||||
return ExceptionContinueSearch;
|
||||
}
|
||||
|
||||
+/***********************************************************************
|
||||
+ * exception_handler_call_wrapper
|
||||
+ */
|
||||
+DWORD exception_handler_call_wrapper( EXCEPTION_RECORD *rec, void *frame,
|
||||
+ CONTEXT *context, DISPATCHER_CONTEXT *dispatch );
|
||||
+__ASM_GLOBAL_FUNC( exception_handler_call_wrapper,
|
||||
+ __ASM_SEH(".seh_endprologue\n\t")
|
||||
+ "subq $0x28, %rsp\n\t"
|
||||
+ __ASM_SEH(".seh_stackalloc 0x28\n\t")
|
||||
+ __ASM_SEH(".seh_handler nested_exception_handler, @except\n\t")
|
||||
+ "callq *0x30(%r9)\n\t" /* dispatch->LanguageHandler */
|
||||
+ "nop\n\t"
|
||||
+ "addq $0x28, %rsp\n\t"
|
||||
+ "ret" );
|
||||
+
|
||||
/**********************************************************************
|
||||
* call_handler
|
||||
*
|
||||
@@ -365,19 +382,19 @@ static DWORD __cdecl nested_exception_handler( EXCEPTION_RECORD *rec, EXCEPTION_
|
||||
*/
|
||||
static DWORD call_handler( EXCEPTION_RECORD *rec, CONTEXT *context, DISPATCHER_CONTEXT *dispatch )
|
||||
{
|
||||
- EXCEPTION_REGISTRATION_RECORD frame;
|
||||
DWORD res;
|
||||
|
||||
- frame.Handler = nested_exception_handler;
|
||||
- __wine_push_frame( &frame );
|
||||
-
|
||||
TRACE_(seh)( "calling handler %p (rec=%p, frame=%p context=%p, dispatch=%p)\n",
|
||||
dispatch->LanguageHandler, rec, (void *)dispatch->EstablisherFrame, dispatch->ContextRecord, dispatch );
|
||||
- res = dispatch->LanguageHandler( rec, (void *)dispatch->EstablisherFrame, context, dispatch );
|
||||
+ res = exception_handler_call_wrapper( rec, (void *)dispatch->EstablisherFrame, context, dispatch );
|
||||
TRACE_(seh)( "handler at %p returned %lu\n", dispatch->LanguageHandler, res );
|
||||
|
||||
rec->ExceptionFlags &= EH_NONCONTINUABLE;
|
||||
- __wine_pop_frame( &frame );
|
||||
+ if (res == ExceptionNestedException)
|
||||
+ {
|
||||
+ rec->ExceptionFlags |= EH_NESTED_CALL;
|
||||
+ res = ExceptionContinueSearch;
|
||||
+ }
|
||||
return res;
|
||||
}
|
||||
|
||||
@@ -992,7 +1009,8 @@ PVOID WINAPI RtlVirtualUnwind( ULONG type, ULONG64 base, ULONG64 pc,
|
||||
|
||||
struct unwind_exception_frame
|
||||
{
|
||||
- EXCEPTION_REGISTRATION_RECORD frame;
|
||||
+ BYTE dummy[0x28];
|
||||
+ void *rip;
|
||||
DISPATCHER_CONTEXT *dispatch;
|
||||
};
|
||||
|
||||
@@ -1001,7 +1019,7 @@ struct unwind_exception_frame
|
||||
*
|
||||
* Handler for exceptions happening while calling an unwind handler.
|
||||
*/
|
||||
-static DWORD __cdecl unwind_exception_handler( EXCEPTION_RECORD *rec, EXCEPTION_REGISTRATION_RECORD *frame,
|
||||
+DWORD __cdecl unwind_exception_handler( EXCEPTION_RECORD *rec, EXCEPTION_REGISTRATION_RECORD *frame,
|
||||
CONTEXT *context, EXCEPTION_REGISTRATION_RECORD **dispatcher )
|
||||
{
|
||||
struct unwind_exception_frame *unwind_frame = (struct unwind_exception_frame *)frame;
|
||||
@@ -1021,27 +1039,36 @@ static DWORD __cdecl unwind_exception_handler( EXCEPTION_RECORD *rec, EXCEPTION_
|
||||
return ExceptionCollidedUnwind;
|
||||
}
|
||||
|
||||
+/***********************************************************************
|
||||
+ * exception_handler_call_wrapper
|
||||
+ */
|
||||
+DWORD unwind_handler_call_wrapper( EXCEPTION_RECORD *rec, void *frame,
|
||||
+ CONTEXT *context, DISPATCHER_CONTEXT *dispatch );
|
||||
+__ASM_GLOBAL_FUNC( unwind_handler_call_wrapper,
|
||||
+ __ASM_SEH(".seh_endprologue\n\t")
|
||||
+ "movq %r9, 0x8(%rsp)\n\t"
|
||||
+ "subq $0x28, %rsp\n\t"
|
||||
+ __ASM_SEH(".seh_stackalloc 0x28\n\t")
|
||||
+ __ASM_SEH(".seh_handler unwind_exception_handler, @except, @unwind\n\t")
|
||||
+ "callq *0x30(%r9)\n\t" /* dispatch->LanguageHandler */
|
||||
+ "nop\n\t"
|
||||
+ "addq $0x28, %rsp\n\t"
|
||||
+ "ret" );
|
||||
+
|
||||
/**********************************************************************
|
||||
* call_unwind_handler
|
||||
*
|
||||
* Call a single unwind handler.
|
||||
*/
|
||||
-static DWORD call_unwind_handler( EXCEPTION_RECORD *rec, DISPATCHER_CONTEXT *dispatch )
|
||||
+DWORD call_unwind_handler( EXCEPTION_RECORD *rec, DISPATCHER_CONTEXT *dispatch )
|
||||
{
|
||||
- struct unwind_exception_frame frame;
|
||||
DWORD res;
|
||||
|
||||
- frame.frame.Handler = unwind_exception_handler;
|
||||
- frame.dispatch = dispatch;
|
||||
- __wine_push_frame( &frame.frame );
|
||||
-
|
||||
TRACE( "calling handler %p (rec=%p, frame=%p context=%p, dispatch=%p)\n",
|
||||
dispatch->LanguageHandler, rec, (void *)dispatch->EstablisherFrame, dispatch->ContextRecord, dispatch );
|
||||
- res = dispatch->LanguageHandler( rec, (void *)dispatch->EstablisherFrame, dispatch->ContextRecord, dispatch );
|
||||
+ res = unwind_handler_call_wrapper( rec, (void *)dispatch->EstablisherFrame, dispatch->ContextRecord, dispatch );
|
||||
TRACE( "handler %p returned %lx\n", dispatch->LanguageHandler, res );
|
||||
|
||||
- __wine_pop_frame( &frame.frame );
|
||||
-
|
||||
switch (res)
|
||||
{
|
||||
case ExceptionContinueSearch:
|
||||
--
|
||||
2.38.1
|
||||
|
@@ -1 +0,0 @@
|
||||
Fixes: [52396] ntdll: Don't use Wine frames during exception processing on x64.
|
File diff suppressed because it is too large
Load Diff
@@ -1,25 +1,23 @@
|
||||
From cea29373b287ae84e28adca9834ffdbb97844ffe Mon Sep 17 00:00:00 2001
|
||||
From bc118983b67f87ed7858711d03cff34050b92770 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sun, 6 Aug 2017 02:50:23 +0200
|
||||
Subject: [PATCH] packager: Prefer native version.
|
||||
|
||||
---
|
||||
dlls/packager/Makefile.in | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
dlls/packager/Makefile.in | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/dlls/packager/Makefile.in b/dlls/packager/Makefile.in
|
||||
index f539cb6f095..faef8deb263 100644
|
||||
index 5fc89d807a8..3589b37be9c 100644
|
||||
--- a/dlls/packager/Makefile.in
|
||||
+++ b/dlls/packager/Makefile.in
|
||||
@@ -2,6 +2,8 @@ EXTRADEFS = -DWINE_NO_LONG_TYPES
|
||||
@@ -1,5 +1,6 @@
|
||||
MODULE = packager.dll
|
||||
IMPORTS = uuid shell32 shlwapi user32
|
||||
|
||||
+EXTRADLLFLAGS = -Wb,--prefer-native
|
||||
+
|
||||
C_SRCS = \
|
||||
packager_main.c
|
||||
|
||||
SOURCES = \
|
||||
packager.rc \
|
||||
--
|
||||
2.34.1
|
||||
2.42.0
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 41373705396aeb4703a6267148ccf663bf9a42bc Mon Sep 17 00:00:00 2001
|
||||
From 6fd6c8a87ca47b28314b815f1c71a224c9598528 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Thu, 3 Mar 2016 04:52:35 +0100
|
||||
Subject: [PATCH] setupapi: Rewrite DiskSpaceList logic using lists.
|
||||
@@ -288,5 +288,5 @@ index 5b89fd5ca99..04bc2696236 100644
|
||||
return TRUE;
|
||||
}
|
||||
--
|
||||
2.40.1
|
||||
2.42.0
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 133fbf15df8b8fd81052d545da7d7d85d4bbe16e Mon Sep 17 00:00:00 2001
|
||||
From 38d743d160a9bc0def832b7dc2b87e5b50fd1998 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Thu, 3 Mar 2016 05:02:21 +0100
|
||||
Subject: [PATCH] setupapi: Implement SetupAddToDiskSpaceList.
|
||||
@@ -9,7 +9,7 @@ Subject: [PATCH] setupapi: Implement SetupAddToDiskSpaceList.
|
||||
2 files changed, 285 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/dlls/setupapi/diskspace.c b/dlls/setupapi/diskspace.c
|
||||
index dcfa39b5a92..cc309f9393c 100644
|
||||
index 04bc2696236..e261f6ea4b7 100644
|
||||
--- a/dlls/setupapi/diskspace.c
|
||||
+++ b/dlls/setupapi/diskspace.c
|
||||
@@ -48,7 +48,21 @@ struct space_list
|
||||
@@ -389,5 +389,5 @@ index 577b1f84a2a..3cd83c8471f 100644
|
||||
+ test_SetupAddToDiskSpaceListA();
|
||||
}
|
||||
--
|
||||
2.35.1
|
||||
2.42.0
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 49440e98e566e15c9785415e966b4ceb80077f06 Mon Sep 17 00:00:00 2001
|
||||
From 0a4c0d6d28e4f64d693d06d3c8110b5c91089415 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Thu, 3 Mar 2016 05:03:11 +0100
|
||||
Subject: [PATCH] setupapi: Implement SetupQueryDrivesInDiskSpaceList.
|
||||
@@ -10,7 +10,7 @@ Subject: [PATCH] setupapi: Implement SetupQueryDrivesInDiskSpaceList.
|
||||
3 files changed, 155 insertions(+), 18 deletions(-)
|
||||
|
||||
diff --git a/dlls/setupapi/diskspace.c b/dlls/setupapi/diskspace.c
|
||||
index cc309f9393c..e59b2736300 100644
|
||||
index e261f6ea4b7..1b49b9600c8 100644
|
||||
--- a/dlls/setupapi/diskspace.c
|
||||
+++ b/dlls/setupapi/diskspace.c
|
||||
@@ -419,3 +419,88 @@ BOOL WINAPI SetupAddToDiskSpaceListA(HDSKSPC diskspace, PCSTR targetfile,
|
||||
@@ -103,7 +103,7 @@ index cc309f9393c..e59b2736300 100644
|
||||
+ return ret;
|
||||
+}
|
||||
diff --git a/dlls/setupapi/stubs.c b/dlls/setupapi/stubs.c
|
||||
index af058b8eac8..55483941033 100644
|
||||
index 75185de047c..7f7aed6c3fe 100644
|
||||
--- a/dlls/setupapi/stubs.c
|
||||
+++ b/dlls/setupapi/stubs.c
|
||||
@@ -230,24 +230,6 @@ INT WINAPI SetupPromptReboot( HSPFILEQ file_queue, HWND owner, BOOL scan_only )
|
||||
@@ -218,5 +218,5 @@ index 3cd83c8471f..930b957e913 100644
|
||||
+ test_SetupQueryDrivesInDiskSpaceListA();
|
||||
}
|
||||
--
|
||||
2.35.1
|
||||
2.42.0
|
||||
|
||||
|
@@ -1,18 +1,19 @@
|
||||
From a9ca8eed486e1a1deb479643ce00a149a93b0f38 Mon Sep 17 00:00:00 2001
|
||||
From 48e72ae0c9b216449b7551582802d25386ea4dc2 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Fri, 4 Mar 2016 04:21:18 +0100
|
||||
Subject: setupapi: Ignore deletion of added files in SetupAddToDiskSpaceList.
|
||||
Subject: [PATCH] setupapi: Ignore deletion of added files in
|
||||
SetupAddToDiskSpaceList.
|
||||
|
||||
---
|
||||
dlls/setupapi/diskspace.c | 6 +++++
|
||||
dlls/setupapi/tests/diskspace.c | 60 ++++++++++++++++++++++++++++++++++++++++-
|
||||
dlls/setupapi/diskspace.c | 6 ++++
|
||||
dlls/setupapi/tests/diskspace.c | 60 ++++++++++++++++++++++++++++++++-
|
||||
2 files changed, 65 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/setupapi/diskspace.c b/dlls/setupapi/diskspace.c
|
||||
index 378aa59d..0cadf72 100644
|
||||
index 1b49b9600c8..ee9fdb801bb 100644
|
||||
--- a/dlls/setupapi/diskspace.c
|
||||
+++ b/dlls/setupapi/diskspace.c
|
||||
@@ -373,6 +373,12 @@ BOOL WINAPI SetupAddToDiskSpaceListW(HDSKSPC diskspace, PCWSTR targetfile,
|
||||
@@ -372,6 +372,12 @@ BOOL WINAPI SetupAddToDiskSpaceListW(HDSKSPC diskspace, PCWSTR targetfile,
|
||||
|
||||
list_add_tail(&list->files, &file->entry);
|
||||
}
|
||||
@@ -26,10 +27,10 @@ index 378aa59d..0cadf72 100644
|
||||
file->operation = operation;
|
||||
if (operation == FILEOP_COPY)
|
||||
diff --git a/dlls/setupapi/tests/diskspace.c b/dlls/setupapi/tests/diskspace.c
|
||||
index 60087d1..793d3a1 100644
|
||||
index 930b957e913..0cacf9a75aa 100644
|
||||
--- a/dlls/setupapi/tests/diskspace.c
|
||||
+++ b/dlls/setupapi/tests/diskspace.c
|
||||
@@ -440,7 +440,15 @@ static void test_SetupQuerySpaceRequiredOnDriveA(void)
|
||||
@@ -428,7 +428,15 @@ static void test_SetupQuerySpaceRequiredOnDriveA(void)
|
||||
|
||||
ret = SetupQuerySpaceRequiredOnDriveA(handle, "F:", &space, NULL, 0);
|
||||
ok(ret, "Expected SetupQuerySpaceRequiredOnDriveA to succeed\n");
|
||||
@@ -46,7 +47,7 @@ index 60087d1..793d3a1 100644
|
||||
|
||||
ok(SetupDestroyDiskSpaceList(handle),
|
||||
"Expected SetupDestroyDiskSpaceList to succeed\n");
|
||||
@@ -478,6 +486,45 @@ static void test_SetupQuerySpaceRequiredOnDriveA(void)
|
||||
@@ -466,6 +474,45 @@ static void test_SetupQuerySpaceRequiredOnDriveA(void)
|
||||
ok(SetupDestroyDiskSpaceList(handle),
|
||||
"Expected SetupDestroyDiskSpaceList to succeed\n");
|
||||
|
||||
@@ -92,7 +93,7 @@ index 60087d1..793d3a1 100644
|
||||
handle = SetupCreateDiskSpaceListA(NULL, 0, 0);
|
||||
ok(handle != NULL,
|
||||
"Expected SetupCreateDiskSpaceListA to return a valid handle, got NULL\n");
|
||||
@@ -492,6 +539,7 @@ static void test_SetupQuerySpaceRequiredOnDriveA(void)
|
||||
@@ -480,6 +527,7 @@ static void test_SetupQuerySpaceRequiredOnDriveA(void)
|
||||
ok(SetupDestroyDiskSpaceList(handle),
|
||||
"Expected SetupDestroyDiskSpaceList to succeed\n");
|
||||
|
||||
@@ -100,7 +101,7 @@ index 60087d1..793d3a1 100644
|
||||
handle = SetupCreateDiskSpaceListA(NULL, 0, SPDSL_IGNORE_DISK);
|
||||
ok(handle != NULL,
|
||||
"Expected SetupCreateDiskSpaceListA to return a valid handle, got NULL\n");
|
||||
@@ -503,6 +551,16 @@ static void test_SetupQuerySpaceRequiredOnDriveA(void)
|
||||
@@ -491,6 +539,16 @@ static void test_SetupQuerySpaceRequiredOnDriveA(void)
|
||||
ok(ret, "Expected SetupQuerySpaceRequiredOnDriveA to succeed\n");
|
||||
ok(space == 0, "Expected size = 0, got %s\n", debugstr_longlong(space));
|
||||
|
||||
@@ -118,5 +119,5 @@ index 60087d1..793d3a1 100644
|
||||
"Expected SetupDestroyDiskSpaceList to succeed\n");
|
||||
}
|
||||
--
|
||||
2.7.1
|
||||
2.42.0
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user