Nikolay Sivov : ntdll: Partially implement NtUnmapViewOfSectionEx().
Alexandre Julliard
julliard at winehq.org
Thu May 5 15:56:01 CDT 2022
Module: wine
Branch: master
Commit: d63db81295d285dcdf3e19cc157f2a09b3dd2d87
URL: https://source.winehq.org/git/wine.git/?a=commit;h=d63db81295d285dcdf3e19cc157f2a09b3dd2d87
Author: Nikolay Sivov <nsivov at codeweavers.com>
Date: Thu May 5 09:49:38 2022 +0300
ntdll: Partially implement NtUnmapViewOfSectionEx().
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/ntdll/ntdll.spec | 2 ++
dlls/ntdll/unix/loader.c | 1 +
dlls/ntdll/unix/virtual.c | 9 +++++++++
dlls/wow64/syscall.h | 1 +
dlls/wow64/virtual.c | 13 +++++++++++++
include/winternl.h | 1 +
6 files changed, 27 insertions(+)
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
index a7a39a0bce2..b1650ab4306 100644
--- a/dlls/ntdll/ntdll.spec
+++ b/dlls/ntdll/ntdll.spec
@@ -427,6 +427,7 @@
@ stdcall -syscall NtUnlockFile(long ptr ptr ptr ptr)
@ stdcall -syscall NtUnlockVirtualMemory(long ptr ptr long)
@ stdcall -syscall NtUnmapViewOfSection(long ptr)
+@ stdcall -syscall NtUnmapViewOfSectionEx(long ptr long)
# @ stub NtVdmControl
# @ stub NtW32Call
@ stdcall -syscall NtWaitForAlertByThreadId(ptr ptr)
@@ -1454,6 +1455,7 @@
@ stdcall -private -syscall ZwUnlockFile(long ptr ptr ptr ptr) NtUnlockFile
@ stdcall -private -syscall ZwUnlockVirtualMemory(long ptr ptr long) NtUnlockVirtualMemory
@ stdcall -private -syscall ZwUnmapViewOfSection(long ptr) NtUnmapViewOfSection
+@ stdcall -private -syscall ZwUnmapViewOfSectionEx(long ptr long) NtUnmapViewOfSectionEx
# @ stub ZwVdmControl
# @ stub ZwW32Call
@ stdcall -private -syscall ZwWaitForAlertByThreadId(ptr ptr) NtWaitForAlertByThreadId
diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c
index cad760a1445..7f85582adf3 100644
--- a/dlls/ntdll/unix/loader.c
+++ b/dlls/ntdll/unix/loader.c
@@ -336,6 +336,7 @@ static void * const syscalls[] =
NtUnlockFile,
NtUnlockVirtualMemory,
NtUnmapViewOfSection,
+ NtUnmapViewOfSectionEx,
NtWaitForAlertByThreadId,
NtWaitForDebugEvent,
NtWaitForKeyedEvent,
diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
index 02478cceb06..6ecca9cb98a 100644
--- a/dlls/ntdll/unix/virtual.c
+++ b/dlls/ntdll/unix/virtual.c
@@ -4610,6 +4610,15 @@ NTSTATUS WINAPI NtUnmapViewOfSection( HANDLE process, PVOID addr )
return status;
}
+/***********************************************************************
+ * NtUnmapViewOfSectionEx (NTDLL.@)
+ * ZwUnmapViewOfSectionEx (NTDLL.@)
+ */
+NTSTATUS WINAPI NtUnmapViewOfSectionEx( HANDLE process, PVOID addr, ULONG flags )
+{
+ if (flags) FIXME("Ignoring flags %#x.\n", flags);
+ return NtUnmapViewOfSection( process, addr );
+}
/******************************************************************************
* virtual_fill_image_information
diff --git a/dlls/wow64/syscall.h b/dlls/wow64/syscall.h
index 3b364d909d7..bd107ce0ef5 100644
--- a/dlls/wow64/syscall.h
+++ b/dlls/wow64/syscall.h
@@ -237,6 +237,7 @@
SYSCALL_ENTRY( NtUnlockFile ) \
SYSCALL_ENTRY( NtUnlockVirtualMemory ) \
SYSCALL_ENTRY( NtUnmapViewOfSection ) \
+ SYSCALL_ENTRY( NtUnmapViewOfSectionEx ) \
SYSCALL_ENTRY( NtWaitForAlertByThreadId ) \
SYSCALL_ENTRY( NtWaitForDebugEvent ) \
SYSCALL_ENTRY( NtWaitForKeyedEvent ) \
diff --git a/dlls/wow64/virtual.c b/dlls/wow64/virtual.c
index 61c84e5d7be..c21464857fa 100644
--- a/dlls/wow64/virtual.c
+++ b/dlls/wow64/virtual.c
@@ -525,6 +525,19 @@ NTSTATUS WINAPI wow64_NtUnmapViewOfSection( UINT *args )
}
+/**********************************************************************
+ * wow64_NtUnmapViewOfSectionEx
+ */
+NTSTATUS WINAPI wow64_NtUnmapViewOfSectionEx( UINT *args )
+{
+ HANDLE process = get_handle( &args );
+ void *addr = get_ptr( &args );
+ ULONG flags = get_ulong( &args );
+
+ return NtUnmapViewOfSectionEx( process, addr, flags );
+}
+
+
/**********************************************************************
* wow64_NtWow64AllocateVirtualMemory64
*/
diff --git a/include/winternl.h b/include/winternl.h
index 1d358fc0b2d..84babcbb0e9 100644
--- a/include/winternl.h
+++ b/include/winternl.h
@@ -4160,6 +4160,7 @@ NTSYSAPI NTSTATUS WINAPI NtUnloadKeyEx(POBJECT_ATTRIBUTES,HANDLE);
NTSYSAPI NTSTATUS WINAPI NtUnlockFile(HANDLE,PIO_STATUS_BLOCK,PLARGE_INTEGER,PLARGE_INTEGER,PULONG);
NTSYSAPI NTSTATUS WINAPI NtUnlockVirtualMemory(HANDLE,PVOID*,SIZE_T*,ULONG);
NTSYSAPI NTSTATUS WINAPI NtUnmapViewOfSection(HANDLE,PVOID);
+NTSYSAPI NTSTATUS WINAPI NtUnmapViewOfSectionEx(HANDLE,PVOID,ULONG);
NTSYSAPI NTSTATUS WINAPI NtVdmControl(ULONG,PVOID);
NTSYSAPI NTSTATUS WINAPI NtWaitForAlertByThreadId(const void*,const LARGE_INTEGER*);
NTSYSAPI NTSTATUS WINAPI NtWaitForDebugEvent(HANDLE,BOOLEAN,LARGE_INTEGER*,DBGUI_WAIT_STATE_CHANGE*);
More information about the wine-cvs
mailing list