mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-09-13 09:17:20 -07:00
Rebase against de034b36b7fbad0edae0a2700376273c74e48ac6.
This commit is contained in:
parent
b72829659d
commit
9c995c8d8e
@ -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
|
||||
|
||||
|
@ -1 +1,2 @@
|
||||
Fixes: [49692] Multiple applications need a Media Foundation media source implementation
|
||||
Disabled: True
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -1 +1,2 @@
|
||||
Fixes: [4836] Various improvements for wineps.drv for Adobe PageMaker compatibility
|
||||
Disabled: True
|
||||
|
@ -1 +1 @@
|
||||
222d20a585c454cb591e3dc539f3bd52427ea30c
|
||||
de034b36b7fbad0edae0a2700376273c74e48ac6
|
||||
|
Loading…
Reference in New Issue
Block a user