Signed-off-by: Myah Caron qsniyg@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