Rebase against de034b36b7fbad0edae0a2700376273c74e48ac6.

This commit is contained in:
Alistair Leslie-Hughes 2023-05-10 09:47:24 +10:00
parent b72829659d
commit 9c995c8d8e
8 changed files with 67 additions and 82 deletions

View File

@ -1,35 +1,26 @@
From ca64589b2447f378651f19eb15672f27c2133493 Mon Sep 17 00:00:00 2001
From 7d0af0dc23f87241726af6f7c48f47df441503a6 Mon Sep 17 00:00:00 2001
From: Derek Lesho <dlesho@codeweavers.com>
Date: Fri, 19 Mar 2021 17:01:54 -0400
Subject: [PATCH] winegstreamer: Report streams backwards in media source.
Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
---
dlls/winegstreamer/media_source.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
dlls/winegstreamer/media_source.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/winegstreamer/media_source.c b/dlls/winegstreamer/media_source.c
index 1b57d8bfba8..4d2a29a6bc1 100644
index 335b617becd..e6117fd0090 100644
--- a/dlls/winegstreamer/media_source.c
+++ b/dlls/winegstreamer/media_source.c
@@ -1497,7 +1497,7 @@ static HRESULT media_source_constructor(IMFByteStream *bytestream, struct media_
DWORD len;
char *str;
- IMFMediaStream_GetStreamDescriptor(&object->streams[i]->IMFMediaStream_iface, &descriptors[i]);
+ IMFMediaStream_GetStreamDescriptor(&object->streams[i]->IMFMediaStream_iface, &descriptors[object->stream_count - 1 - i]);
for (j = 0; j < ARRAY_SIZE(tags); ++j)
{
@@ -1510,7 +1510,7 @@ static HRESULT media_source_constructor(IMFByteStream *bytestream, struct media_
@@ -1604,7 +1604,7 @@ static HRESULT media_source_constructor(IMFByteStream *bytestream, struct media_
}
strW = malloc(len * sizeof(*strW));
if (MultiByteToWideChar(CP_UTF8, 0, str, -1, strW, len))
- IMFStreamDescriptor_SetString(descriptors[i], tags[j].mf_attr, strW);
+ IMFStreamDescriptor_SetString(descriptors[object->stream_count - 1 - i], tags[j].mf_attr, strW);
- IMFStreamDescriptor_SetString(object->descriptors[i], tags[j].mf_attr, strW);
+ IMFStreamDescriptor_SetString(object->descriptors[object->stream_count - 1 - i], tags[j].mf_attr, strW);
free(strW);
free(str);
}
--
2.40.0
2.40.1

View File

@ -1 +1,2 @@
Fixes: [49692] Multiple applications need a Media Foundation media source implementation
Disabled: True

View File

@ -1,4 +1,4 @@
From 4baf5566da8495ef3b260783ed88f175e43b4f70 Mon Sep 17 00:00:00 2001
From e1f80e94e43d910a3d2b3bc5708a78507b11f4f5 Mon Sep 17 00:00:00 2001
From: Paul Gofman <pgofman@codeweavers.com>
Date: Fri, 11 Nov 2022 18:37:43 -0600
Subject: [PATCH] ntdll: Factor out some view manipulation functions.
@ -8,10 +8,10 @@ Subject: [PATCH] ntdll: Factor out some view manipulation functions.
1 file changed, 40 insertions(+), 7 deletions(-)
diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
index 2dca5dfa45f..bdc410472ec 100644
index cacde37e2e4..2dc66624ffc 100644
--- a/dlls/ntdll/unix/virtual.c
+++ b/dlls/ntdll/unix/virtual.c
@@ -1563,6 +1563,31 @@ static struct file_view *alloc_view(void)
@@ -1593,6 +1593,31 @@ static struct file_view *alloc_view(void)
}
@ -43,10 +43,10 @@ index 2dca5dfa45f..bdc410472ec 100644
/***********************************************************************
* delete_view
*
@@ -1572,11 +1597,21 @@ static void delete_view( struct file_view *view ) /* [in] View */
{
@@ -1603,11 +1628,21 @@ static void delete_view( struct file_view *view ) /* [in] View */
if (!(view->protect & VPROT_SYSTEM)) unmap_area( view->base, view->size );
set_page_vprot( view->base, view->size, 0 );
if (arm64ec_map) clear_arm64ec_range( view->base, view->size );
+ unregister_view( view );
+ free_view( view );
+}
@ -69,7 +69,7 @@ index 2dca5dfa45f..bdc410472ec 100644
}
@@ -1620,9 +1655,7 @@ static NTSTATUS create_view( struct file_view **view_ret, void *base, size_t siz
@@ -1651,9 +1686,7 @@ static NTSTATUS create_view( struct file_view **view_ret, void *base, size_t siz
view->protect = vprot;
set_page_vprot( base, size, vprot );
@ -81,5 +81,5 @@ index 2dca5dfa45f..bdc410472ec 100644
*view_ret = view;
--
2.38.1
2.40.1

View File

@ -1,4 +1,4 @@
From 6fbb8f079b1024d742f2cc34425e6099e23f2f39 Mon Sep 17 00:00:00 2001
From dda1364400c5fea03e6d34c035f1d7b34649158e Mon Sep 17 00:00:00 2001
From: Paul Gofman <pgofman@codeweavers.com>
Date: Thu, 10 Nov 2022 18:53:10 -0600
Subject: [PATCH] ntdll: Support MEM_RESERVE_PLACEHOLDER in
@ -10,10 +10,10 @@ Based on a patch by Nikolay Sivov.
1 file changed, 24 insertions(+), 2 deletions(-)
diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
index f078e114b4c..6204ed5a452 100644
index c8e0f15eef4..dd146126361 100644
--- a/dlls/ntdll/unix/virtual.c
+++ b/dlls/ntdll/unix/virtual.c
@@ -3891,13 +3891,18 @@ static NTSTATUS allocate_virtual_memory( void **ret, SIZE_T *size_ptr, ULONG typ
@@ -4072,8 +4072,7 @@ static NTSTATUS allocate_virtual_memory( void **ret, SIZE_T *size_ptr, ULONG typ
/* Compute the alloc type flags */
@ -23,7 +23,9 @@ index f078e114b4c..6204ed5a452 100644
{
WARN("called with wrong alloc type flags (%08x) !\n", (int)type);
return STATUS_INVALID_PARAMETER;
}
@@ -4081,6 +4080,12 @@ static NTSTATUS allocate_virtual_memory( void **ret, SIZE_T *size_ptr, ULONG typ
if (!arm64ec_map && (attributes & MEM_EXTENDED_PARAMETER_EC_CODE)) return STATUS_INVALID_PARAMETER;
+ if (type & MEM_RESERVE_PLACEHOLDER && (protect != PAGE_NOACCESS))
+ {
@ -34,7 +36,7 @@ index f078e114b4c..6204ed5a452 100644
/* Reserve the memory */
server_enter_uninterrupted_section( &virtual_mutex, &sigset );
@@ -3908,6 +3913,7 @@ static NTSTATUS allocate_virtual_memory( void **ret, SIZE_T *size_ptr, ULONG typ
@@ -4091,6 +4096,7 @@ static NTSTATUS allocate_virtual_memory( void **ret, SIZE_T *size_ptr, ULONG typ
{
if (type & MEM_COMMIT) vprot |= VPROT_COMMITTED;
if (type & MEM_WRITE_WATCH) vprot |= VPROT_WRITEWATCH;
@ -42,7 +44,7 @@ index f078e114b4c..6204ed5a452 100644
if (protect & PAGE_NOCACHE) vprot |= SEC_NOCACHE;
if (vprot & VPROT_WRITECOPY) status = STATUS_INVALID_PAGE_PROTECTION;
@@ -3927,6 +3933,7 @@ static NTSTATUS allocate_virtual_memory( void **ret, SIZE_T *size_ptr, ULONG typ
@@ -4110,6 +4116,7 @@ static NTSTATUS allocate_virtual_memory( void **ret, SIZE_T *size_ptr, ULONG typ
{
if (!(view = find_view( base, size ))) status = STATUS_NOT_MAPPED_VIEW;
else if (view->protect & SEC_FILE) status = STATUS_ALREADY_COMMITTED;
@ -50,7 +52,7 @@ index f078e114b4c..6204ed5a452 100644
else if (!(status = set_protection( view, base, size, protect )) && (view->protect & SEC_RESERVE))
{
SERVER_START_REQ( add_mapping_committed_range )
@@ -3960,6 +3967,7 @@ static NTSTATUS allocate_virtual_memory( void **ret, SIZE_T *size_ptr, ULONG typ
@@ -4145,6 +4152,7 @@ static NTSTATUS allocate_virtual_memory( void **ret, SIZE_T *size_ptr, ULONG typ
NTSTATUS WINAPI NtAllocateVirtualMemory( HANDLE process, PVOID *ret, ULONG_PTR zero_bits,
SIZE_T *size_ptr, ULONG type, ULONG protect )
{
@ -58,7 +60,7 @@ index f078e114b4c..6204ed5a452 100644
ULONG_PTR limit;
TRACE("%p %p %08lx %x %08x\n", process, *ret, *size_ptr, (int)type, (int)protect );
@@ -3971,6 +3979,12 @@ NTSTATUS WINAPI NtAllocateVirtualMemory( HANDLE process, PVOID *ret, ULONG_PTR z
@@ -4156,6 +4164,12 @@ NTSTATUS WINAPI NtAllocateVirtualMemory( HANDLE process, PVOID *ret, ULONG_PTR z
if (!is_old_wow64() && zero_bits >= 32) return STATUS_INVALID_PARAMETER_3;
#endif
@ -71,7 +73,7 @@ index f078e114b4c..6204ed5a452 100644
if (process != NtCurrentProcess())
{
apc_call_t call;
@@ -4013,6 +4027,8 @@ NTSTATUS WINAPI NtAllocateVirtualMemoryEx( HANDLE process, PVOID *ret, SIZE_T *s
@@ -4198,6 +4212,8 @@ NTSTATUS WINAPI NtAllocateVirtualMemoryEx( HANDLE process, PVOID *ret, SIZE_T *s
ULONG protect, MEM_EXTENDED_PARAMETER *parameters,
ULONG count )
{
@ -79,8 +81,8 @@ index f078e114b4c..6204ed5a452 100644
+ | MEM_RESET | MEM_RESERVE_PLACEHOLDER;
ULONG_PTR limit = 0;
ULONG_PTR align = 0;
@@ -4021,6 +4037,12 @@ NTSTATUS WINAPI NtAllocateVirtualMemoryEx( HANDLE process, PVOID *ret, SIZE_T *s
ULONG attributes = 0;
@@ -4209,6 +4225,12 @@ NTSTATUS WINAPI NtAllocateVirtualMemoryEx( HANDLE process, PVOID *ret, SIZE_T *s
if (count && !parameters) return STATUS_INVALID_PARAMETER;
@ -90,9 +92,9 @@ index f078e114b4c..6204ed5a452 100644
+ return STATUS_INVALID_PARAMETER;
+ }
+
if (count)
for (i = 0; i < count; ++i)
{
MEM_ADDRESS_REQUIREMENTS *r = NULL;
switch (parameters[i].Type)
--
2.40.0
2.40.1

View File

@ -1,4 +1,4 @@
From 15d43de746bf26b783e4b357fbc23dfa7247c78a Mon Sep 17 00:00:00 2001
From 34562a9ed59356de31669c76bdf87886ee9febe4 Mon Sep 17 00:00:00 2001
From: Paul Gofman <pgofman@codeweavers.com>
Date: Thu, 10 Nov 2022 18:58:26 -0600
Subject: [PATCH] ntdll: Support MEM_REPLACE_PLACEHOLDER in
@ -9,10 +9,10 @@ Subject: [PATCH] ntdll: Support MEM_REPLACE_PLACEHOLDER in
1 file changed, 37 insertions(+), 4 deletions(-)
diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
index 5bea8ba8322..4d8dd54554c 100644
index dd146126361..0f2818f563d 100644
--- a/dlls/ntdll/unix/virtual.c
+++ b/dlls/ntdll/unix/virtual.c
@@ -125,6 +125,7 @@ struct file_view
@@ -126,6 +126,7 @@ struct file_view
/* per-mapping protection flags */
#define VPROT_SYSTEM 0x0200 /* system view (underlying mmap not under our control) */
#define VPROT_PLACEHOLDER 0x0400
@ -20,7 +20,7 @@ index 5bea8ba8322..4d8dd54554c 100644
/* Conversion from VPROT_* to Win32 flags */
static const BYTE VIRTUAL_Win32Flags[16] =
@@ -2011,6 +2012,31 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
@@ -2044,6 +2045,31 @@ static NTSTATUS map_view( struct file_view **view_ret, void *base, size_t size,
void *ptr;
NTSTATUS status;
@ -52,7 +52,7 @@ index 5bea8ba8322..4d8dd54554c 100644
if (base)
{
if (is_beyond_limit( base, size, address_space_limit ))
@@ -3894,7 +3920,7 @@ static NTSTATUS allocate_virtual_memory( void **ret, SIZE_T *size_ptr, ULONG typ
@@ -4048,7 +4074,7 @@ static NTSTATUS allocate_virtual_memory( void **ret, SIZE_T *size_ptr, ULONG typ
if (*ret)
{
@ -61,7 +61,7 @@ index 5bea8ba8322..4d8dd54554c 100644
base = ROUND_ADDR( *ret, granularity_mask );
else
base = ROUND_ADDR( *ret, page_mask );
@@ -3918,7 +3944,8 @@ static NTSTATUS allocate_virtual_memory( void **ret, SIZE_T *size_ptr, ULONG typ
@@ -4072,7 +4098,8 @@ static NTSTATUS allocate_virtual_memory( void **ret, SIZE_T *size_ptr, ULONG typ
/* Compute the alloc type flags */
@ -71,7 +71,7 @@ index 5bea8ba8322..4d8dd54554c 100644
{
WARN("called with wrong alloc type flags (%08x) !\n", (int)type);
return STATUS_INVALID_PARAMETER;
@@ -3945,7 +3972,7 @@ static NTSTATUS allocate_virtual_memory( void **ret, SIZE_T *size_ptr, ULONG typ
@@ -4101,7 +4128,7 @@ static NTSTATUS allocate_virtual_memory( void **ret, SIZE_T *size_ptr, ULONG typ
if (vprot & VPROT_WRITECOPY) status = STATUS_INVALID_PAGE_PROTECTION;
else if (is_dos_memory) status = allocate_dos_memory( &view, vprot );
@ -80,7 +80,7 @@ index 5bea8ba8322..4d8dd54554c 100644
align ? align - 1 : granularity_mask );
if (status == STATUS_SUCCESS) base = view->base;
@@ -4055,7 +4082,7 @@ NTSTATUS WINAPI NtAllocateVirtualMemoryEx( HANDLE process, PVOID *ret, SIZE_T *s
@@ -4213,7 +4240,7 @@ NTSTATUS WINAPI NtAllocateVirtualMemoryEx( HANDLE process, PVOID *ret, SIZE_T *s
ULONG count )
{
static const ULONG type_mask = MEM_COMMIT | MEM_RESERVE | MEM_TOP_DOWN | MEM_WRITE_WATCH
@ -88,8 +88,8 @@ index 5bea8ba8322..4d8dd54554c 100644
+ | MEM_RESET | MEM_RESERVE_PLACEHOLDER | MEM_REPLACE_PLACEHOLDER;
ULONG_PTR limit = 0;
ULONG_PTR align = 0;
@@ -4209,6 +4236,12 @@ NTSTATUS WINAPI NtFreeVirtualMemory( HANDLE process, PVOID *addr_ptr, SIZE_T *si
ULONG attributes = 0;
@@ -4371,6 +4398,12 @@ NTSTATUS WINAPI NtFreeVirtualMemory( HANDLE process, PVOID *addr_ptr, SIZE_T *si
if (size && (char *)view->base + view->size - base < size) status = STATUS_UNABLE_TO_FREE_VM;
else if (!size && base != view->base) status = STATUS_FREE_VM_NOT_AT_BASE;
@ -103,5 +103,5 @@ index 5bea8ba8322..4d8dd54554c 100644
{
if (!size) size = view->size;
--
2.38.1
2.40.1

View File

@ -1,15 +1,15 @@
From e47dfda03cf4f2e4c1676273da4ee8f54fabbf01 Mon Sep 17 00:00:00 2001
From 2248dedbf01f0abeb4290d79c13c3b967010ba97 Mon Sep 17 00:00:00 2001
From: Paul Gofman <pgofman@codeweavers.com>
Date: Wed, 9 Nov 2022 21:23:19 -0600
Subject: [PATCH] ntdll/tests: Add more tests for placeholders.
---
dlls/kernelbase/tests/process.c | 15 ++-
dlls/ntdll/tests/virtual.c | 227 +++++++++++++++++++++++---------
2 files changed, 179 insertions(+), 63 deletions(-)
dlls/ntdll/tests/virtual.c | 217 +++++++++++++++++++++++---------
2 files changed, 171 insertions(+), 61 deletions(-)
diff --git a/dlls/kernelbase/tests/process.c b/dlls/kernelbase/tests/process.c
index ed213f1f7b6..0d75c6e2dda 100644
index b8c3bbb7276..03f76a1b73a 100644
--- a/dlls/kernelbase/tests/process.c
+++ b/dlls/kernelbase/tests/process.c
@@ -168,7 +168,6 @@ static void test_VirtualAlloc2(void)
@ -42,15 +42,16 @@ index ed213f1f7b6..0d75c6e2dda 100644
UnmapViewOfFile(view1);
UnmapViewOfFile(view2);
diff --git a/dlls/ntdll/tests/virtual.c b/dlls/ntdll/tests/virtual.c
index 486efabaf70..b41f42ac9d1 100644
index 335ba118fb9..3000ae68620 100644
--- a/dlls/ntdll/tests/virtual.c
+++ b/dlls/ntdll/tests/virtual.c
@@ -291,9 +291,13 @@ static void check_region_size_(void *p, SIZE_T s, unsigned int line)
@@ -293,10 +293,14 @@ static void check_region_size_(void *p, SIZE_T s, unsigned int line)
static void test_NtAllocateVirtualMemoryEx(void)
{
+ MEMORY_BASIC_INFORMATION mbi;
+ void *addresses[16];
MEM_EXTENDED_PARAMETER ext;
SIZE_T size, size2;
char *p, *p1, *p2;
+ ULONG granularity;
@ -59,7 +60,7 @@ index 486efabaf70..b41f42ac9d1 100644
void *addr1;
if (!pNtAllocateVirtualMemoryEx)
@@ -329,98 +333,197 @@ static void test_NtAllocateVirtualMemoryEx(void)
@@ -332,48 +336,148 @@ static void test_NtAllocateVirtualMemoryEx(void)
status = NtAllocateVirtualMemory(NtCurrentProcess(), &addr1, 0, &size, MEM_RESERVE | MEM_RESERVE_PLACEHOLDER, PAGE_NOACCESS);
ok(status == STATUS_INVALID_PARAMETER, "Unexpected status %08lx.\n", status);
@ -69,7 +70,7 @@ index 486efabaf70..b41f42ac9d1 100644
+
status = pNtAllocateVirtualMemoryEx(NtCurrentProcess(), &addr1, &size, MEM_RESERVE | MEM_RESERVE_PLACEHOLDER,
PAGE_NOACCESS, NULL, 0);
- todo_wine
todo_wine
ok(status == STATUS_SUCCESS, "Unexpected status %08lx.\n", status);
- if (addr1)
@ -105,7 +106,8 @@ index 486efabaf70..b41f42ac9d1 100644
+ size = 0x10000;
+ status = NtFreeVirtualMemory(NtCurrentProcess(), (void **)&addr1, &size, MEM_RELEASE | MEM_PRESERVE_PLACEHOLDER);
+ ok(!status, "Unexpected status %08lx.\n", status);
+
- /* Placeholder region splitting. */
+ status = NtQueryVirtualMemory( NtCurrentProcess(), addr1, MemoryBasicInformation, &mbi, sizeof(mbi), &size );
+ ok(!status, "Unexpected status %08lx.\n", status);
+ ok(mbi.AllocationProtect == PAGE_NOACCESS, "Unexpected protection %#lx.\n", mbi.AllocationProtect);
@ -174,8 +176,8 @@ index 486efabaf70..b41f42ac9d1 100644
+ size = 0;
+ status = NtFreeVirtualMemory(NtCurrentProcess(), &addr1, &size, MEM_RELEASE);
+ ok(status == STATUS_SUCCESS, "Unexpected status %08lx.\n", status);
/* Placeholder region splitting. */
+
+ /* Placeholder region splitting. */
+ addr1 = NULL;
+ size = 0x10000;
+ status = pNtAllocateVirtualMemoryEx(NtCurrentProcess(), &addr1, &size, MEM_RESERVE,
@ -186,7 +188,6 @@ index 486efabaf70..b41f42ac9d1 100644
+ ok(status == STATUS_CONFLICTING_ADDRESSES, "Unexpected status %08lx.\n", status);
+ status = NtFreeVirtualMemory(NtCurrentProcess(), (void **)&p, &size, MEM_RELEASE);
+ ok(status == STATUS_SUCCESS, "Unexpected status %08lx.\n", status);
+
/* Split in three regions. */
addr1 = NULL;
@ -216,9 +217,6 @@ index 486efabaf70..b41f42ac9d1 100644
- status = NtFreeVirtualMemory(NtCurrentProcess(), (void **)&p2, &size2, MEM_RELEASE);
- ok(status == STATUS_SUCCESS, "Unexpected status %08lx.\n", status);
- }
+ status = NtFreeVirtualMemory(NtCurrentProcess(), (void **)&addr1, &size, MEM_RELEASE | MEM_PRESERVE_PLACEHOLDER);
+ ok(status == STATUS_CONFLICTING_ADDRESSES, "Unexpected status %08lx.\n", status);
+
+ p = addr1;
+ p1 = p + size / 2;
+ p2 = p1 + size / 4;
@ -239,10 +237,8 @@ index 486efabaf70..b41f42ac9d1 100644
/* Split in two regions, specifying lower part. */
addr1 = NULL;
size = 0x10000;
status = pNtAllocateVirtualMemoryEx(NtCurrentProcess(), &addr1, &size, MEM_RESERVE | MEM_RESERVE_PLACEHOLDER,
PAGE_NOACCESS, NULL, 0);
- todo_wine
@@ -383,22 +487,19 @@ static void test_NtAllocateVirtualMemoryEx(void)
todo_wine
ok(status == STATUS_SUCCESS, "Unexpected status %08lx.\n", status);
- if (status == STATUS_SUCCESS)
@ -261,10 +257,6 @@ index 486efabaf70..b41f42ac9d1 100644
- status = NtFreeVirtualMemory(NtCurrentProcess(), (void **)&p2, &size2, MEM_RELEASE);
- ok(status == STATUS_SUCCESS, "Unexpected status %08lx.\n", status);
- }
+ size2 = 0;
+ status = NtFreeVirtualMemory(NtCurrentProcess(), (void **)&addr1, &size2, MEM_RELEASE | MEM_PRESERVE_PLACEHOLDER);
+ ok(status == STATUS_INVALID_PARAMETER_3, "Unexpected status %08lx.\n", status);
+
+ p1 = addr1;
+ p2 = p1 + size / 4;
+ size2 = size / 4;
@ -281,11 +273,12 @@ index 486efabaf70..b41f42ac9d1 100644
/* Split in two regions, specifying second half. */
addr1 = NULL;
size = 0x10000;
status = pNtAllocateVirtualMemoryEx(NtCurrentProcess(), &addr1, &size, MEM_RESERVE | MEM_RESERVE_PLACEHOLDER,
@@ -407,23 +508,19 @@ static void test_NtAllocateVirtualMemoryEx(void)
PAGE_NOACCESS, NULL, 0);
- todo_wine
todo_wine
ok(status == STATUS_SUCCESS, "Unexpected status %08lx.\n", status);
+ p1 = addr1;
+ p2 = p1 + size / 2;
- if (status == STATUS_SUCCESS)
- {
@ -303,9 +296,6 @@ index 486efabaf70..b41f42ac9d1 100644
- status = NtFreeVirtualMemory(NtCurrentProcess(), (void **)&p2, &size2, MEM_RELEASE);
- ok(status == STATUS_SUCCESS, "Unexpected status %08lx.\n", status);
- }
+ p1 = addr1;
+ p2 = p1 + size / 2;
+
+ size2 = size / 2;
+ status = NtFreeVirtualMemory(NtCurrentProcess(), (void **)&p2, &size2, MEM_RELEASE | MEM_PRESERVE_PLACEHOLDER);
+ ok(status == STATUS_SUCCESS, "Unexpected status %08lx.\n", status);
@ -316,9 +306,9 @@ index 486efabaf70..b41f42ac9d1 100644
+ ok(status == STATUS_SUCCESS, "Unexpected status %08lx.\n", status);
+ status = NtFreeVirtualMemory(NtCurrentProcess(), (void **)&p2, &size2, MEM_RELEASE);
+ ok(status == STATUS_SUCCESS, "Unexpected status %08lx.\n", status);
}
static void test_NtAllocateVirtualMemoryEx_address_requirements(void)
memset( &ext, 0, sizeof(ext) );
ext.Type = MemExtendedParameterAttributeFlags;
--
2.38.1
2.40.1

View File

@ -1 +1,2 @@
Fixes: [4836] Various improvements for wineps.drv for Adobe PageMaker compatibility
Disabled: True

View File

@ -1 +1 @@
222d20a585c454cb591e3dc539f3bd52427ea30c
de034b36b7fbad0edae0a2700376273c74e48ac6