[PATCH 3/4] kernelbase: Implement VirtualAlloc2.
Myah Caron
qsniyg at protonmail.com
Fri Oct 16 20:44:52 CDT 2020
Signed-off-by: Myah Caron <qsniyg at protonmail.com>
---
dlls/kernelbase/kernelbase.spec | 1 +
dlls/kernelbase/memory.c | 15 +++++++++++++++
include/winbase.h | 1 +
3 files changed, 17 insertions(+)
diff --git a/dlls/kernelbase/kernelbase.spec b/dlls/kernelbase/kernelbase.spec
index 9c7babde7fd..16c51a15f1d 100644
--- a/dlls/kernelbase/kernelbase.spec
+++ b/dlls/kernelbase/kernelbase.spec
@@ -1675,6 +1675,7 @@
@ stdcall VirtualAlloc(ptr long long long)
@ stdcall VirtualAllocEx(long ptr long long long)
@ stdcall VirtualAllocExNuma(long ptr long long long long)
+@ stdcall VirtualAlloc2(long ptr long long long ptr long)
# @ stub VirtualAllocFromApp
@ stdcall VirtualFree(ptr long long)
@ stdcall VirtualFreeEx(long ptr long long)
diff --git a/dlls/kernelbase/memory.c b/dlls/kernelbase/memory.c
index 4ead38f2bc0..c3adf2217af 100644
--- a/dlls/kernelbase/memory.c
+++ b/dlls/kernelbase/memory.c
@@ -299,6 +299,21 @@ LPVOID WINAPI DECLSPEC_HOTPATCH VirtualAllocEx( HANDLE process, void *addr, SIZE
}
+/***********************************************************************
+ * VirtualAlloc2 (kernelbase.@)
+ */
+LPVOID WINAPI DECLSPEC_HOTPATCH VirtualAlloc2( HANDLE process, void *addr, SIZE_T size,
+ DWORD type, DWORD protect,
+ MEM_EXTENDED_PARAMETER* parameters, ULONG count )
+{
+ LPVOID ret = addr;
+
+ if (!set_ntstatus( NtAllocateVirtualMemoryEx( process, &ret, &size, type, protect, parameters, count )))
+ return NULL;
+ return ret;
+}
+
+
/***********************************************************************
* VirtualFree (kernelbase.@)
*/
diff --git a/include/winbase.h b/include/winbase.h
index f1c3198c21a..6bf632387a8 100644
--- a/include/winbase.h
+++ b/include/winbase.h
@@ -2746,6 +2746,7 @@ WINBASEAPI BOOL WINAPI VerifyVersionInfoW(LPOSVERSIONINFOEXW,DWORD,DWORDL
WINBASEAPI LPVOID WINAPI VirtualAlloc(LPVOID,SIZE_T,DWORD,DWORD);
WINBASEAPI LPVOID WINAPI VirtualAllocEx(HANDLE,LPVOID,SIZE_T,DWORD,DWORD);
WINBASEAPI LPVOID WINAPI VirtualAllocExNuma(HANDLE,void*,SIZE_T,DWORD,DWORD,DWORD);
+WINBASEAPI LPVOID WINAPI VirtualAlloc2(HANDLE,LPVOID,SIZE_T,DWORD,DWORD,MEM_EXTENDED_PARAMETER*,ULONG);
WINBASEAPI BOOL WINAPI VirtualFree(LPVOID,SIZE_T,DWORD);
WINBASEAPI BOOL WINAPI VirtualFreeEx(HANDLE,LPVOID,SIZE_T,DWORD);
WINBASEAPI BOOL WINAPI VirtualLock(LPVOID,SIZE_T);
--
2.28.0
More information about the wine-devel
mailing list