Rebase against 54b2a10659871032720df31ae9ca6cba2ff4acf0.

This commit is contained in:
Zebediah Figura
2020-07-14 18:10:39 -05:00
parent 3acacd0ee1
commit 103195f07d
10 changed files with 65 additions and 126 deletions

View File

@@ -1,4 +1,4 @@
From c1b6bc02ee2534dc2b51d8184fb0ca6717c33cf3 Mon Sep 17 00:00:00 2001
From 2de64a6d61d01b9409ab6b61176c0a88a4838937 Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
Date: Sun, 28 May 2017 05:19:30 +0200
Subject: [PATCH] ntdll: Implement NtQueryVirtualMemory(MemorySectionName).
@@ -15,10 +15,10 @@ Contains several improvements by Sebastian Lackner <sebastian@fds-team.de>.
6 files changed, 136 insertions(+), 9 deletions(-)
diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c
index 6b0dbaa7b3d..2ac7fcaae35 100644
index b404bceb427..dcc76846c1e 100644
--- a/dlls/ntdll/unix/file.c
+++ b/dlls/ntdll/unix/file.c
@@ -1767,7 +1767,7 @@ static NTSTATUS fill_file_info( const struct stat *st, ULONG attr, void *ptr,
@@ -1763,7 +1763,7 @@ static NTSTATUS fill_file_info( const struct stat *st, ULONG attr, void *ptr,
}
@@ -28,7 +28,7 @@ index 6b0dbaa7b3d..2ac7fcaae35 100644
data_size_t size = 1024;
NTSTATUS ret;
diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h
index 711a0bed2b7..466c59da75a 100644
index 3d56ea5d408..f24ca578ce1 100644
--- a/dlls/ntdll/unix/unix_private.h
+++ b/dlls/ntdll/unix/unix_private.h
@@ -170,6 +170,7 @@ extern unsigned int server_queue_process_apc( HANDLE process, const apc_call_t *
@@ -40,10 +40,10 @@ index 711a0bed2b7..466c59da75a 100644
extern size_t server_init_thread( void *entry_point, BOOL *suspend ) DECLSPEC_HIDDEN;
extern int server_pipe( int fd[2] ) DECLSPEC_HIDDEN;
diff --git a/dlls/ntdll/unix/virtual.c b/dlls/ntdll/unix/virtual.c
index cd1bd162a2a..570a8a3bf49 100644
index 91989bd569e..d1c63bdb215 100644
--- a/dlls/ntdll/unix/virtual.c
+++ b/dlls/ntdll/unix/virtual.c
@@ -4013,6 +4013,98 @@ static NTSTATUS get_working_set_ex( HANDLE process, LPCVOID addr,
@@ -4009,6 +4009,98 @@ static NTSTATUS get_working_set_ex( HANDLE process, LPCVOID addr,
return STATUS_SUCCESS;
}
@@ -78,7 +78,7 @@ index cd1bd162a2a..570a8a3bf49 100644
+ if (!status)
+ {
+ status = unix_to_nt_file_name( unix_name, &nt_nameW );
+ RtlFreeHeap( GetProcessHeap(), 0, unix_name );
+ free( unix_name );
+ }
+ if (!status)
+ {
@@ -91,7 +91,7 @@ index cd1bd162a2a..570a8a3bf49 100644
+
+ for (;;)
+ {
+ if (!(name = RtlAllocateHeap( GetProcessHeap(), 0, (size + 1) * sizeof(WCHAR) )))
+ if (!(name = malloc( (size + 1) * sizeof(WCHAR) )))
+ return STATUS_NO_MEMORY;
+
+ SERVER_START_REQ( get_dll_info )
@@ -109,14 +109,14 @@ index cd1bd162a2a..570a8a3bf49 100644
+ name[size] = 0;
+ break;
+ }
+ RtlFreeHeap( GetProcessHeap(), 0, name );
+ free( name );
+ if (status == STATUS_DLL_NOT_FOUND) return STATUS_INVALID_ADDRESS;
+ if (status != STATUS_BUFFER_TOO_SMALL) return status;
+ }
+
+ if (!RtlDosPathNameToNtPathName_U( name, &nt_name, NULL, NULL ))
+ {
+ RtlFreeHeap( GetProcessHeap(), 0, name );
+ free( name );
+ return STATUS_INVALID_PARAMETER;
+ }
+
@@ -133,7 +133,7 @@ index cd1bd162a2a..570a8a3bf49 100644
+ else
+ status = (len < sizeof(MEMORY_SECTION_NAME)) ? STATUS_INFO_LENGTH_MISMATCH : STATUS_BUFFER_OVERFLOW;
+
+ RtlFreeHeap( GetProcessHeap(), 0, name );
+ free( name );
+ RtlFreeUnicodeString( &nt_name );
+ return status;
+}
@@ -142,7 +142,7 @@ index cd1bd162a2a..570a8a3bf49 100644
#define UNIMPLEMENTED_INFO_CLASS(c) \
case c: \
FIXME("(process=%p,addr=%p) Unimplemented information class: " #c "\n", process, addr); \
@@ -4037,8 +4129,10 @@ NTSTATUS WINAPI NtQueryVirtualMemory( HANDLE process, LPCVOID addr,
@@ -4033,8 +4125,10 @@ NTSTATUS WINAPI NtQueryVirtualMemory( HANDLE process, LPCVOID addr,
case MemoryWorkingSetExInformation:
return get_working_set_ex( process, addr, buffer, len, res_len );
@@ -222,10 +222,10 @@ index db0debe0af5..6e74f5b770f 100644
DECL_HANDLER(get_mapping_committed_range)
{
diff --git a/server/protocol.def b/server/protocol.def
index bd6841d8000..345e0966c14 100644
index 03e567c3dd4..3f0a68ccdcc 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -1756,6 +1756,15 @@ enum char_info_mode
@@ -1686,6 +1686,15 @@ enum char_info_mode
@END