3 * COPYRIGHT: See COPYING in the top level directory
4 * PROJECT: ReactOS kernel
5 * FILE: lib/kernel32/mem/virtual.c
6 * PURPOSE: Passing the Virtualxxx functions onto the kernel
7 * PROGRAMMER: David Welch (welch@mcmail.com)
10 /* INCLUDES ******************************************************************/
12 #include <ddk/ntddk.h>
13 #include <kernel32/error.h>
16 /* FUNCTIONS *****************************************************************/
19 VirtualAllocEx(HANDLE hProcess,
22 DWORD flAllocationType,
27 Status = NtAllocateVirtualMemory(hProcess,
33 if (!NT_SUCCESS(Status))
35 SetLastErrorByStatus(Status);
43 VirtualAlloc(LPVOID lpAddress,
45 DWORD flAllocationType,
48 return(VirtualAllocEx(GetCurrentProcess(),
57 VirtualFreeEx(HANDLE hProcess,
64 Status = NtFreeVirtualMemory(hProcess,
68 if (!NT_SUCCESS(Status))
70 SetLastErrorByStatus(Status);
78 VirtualFree(LPVOID lpAddress,
82 return(VirtualFreeEx(GetCurrentProcess(),
90 VirtualProtect(LPVOID lpAddress,
93 PDWORD lpflOldProtect)
95 return(VirtualProtectEx(GetCurrentProcess(),
104 VirtualProtectEx(HANDLE hProcess,
108 PDWORD lpflOldProtect)
112 Status = NtProtectVirtualMemory(hProcess,
116 (PULONG)lpflOldProtect);
117 if (!NT_SUCCESS(Status))
119 SetLastErrorByStatus(Status);
127 VirtualLock(LPVOID lpAddress,
133 Status = NtLockVirtualMemory(NtCurrentProcess(),
137 if (!NT_SUCCESS(Status))
139 SetLastErrorByStatus(Status);
147 VirtualQuery(LPCVOID lpAddress,
148 PMEMORY_BASIC_INFORMATION lpBuffer,
151 return(VirtualQueryEx(NtCurrentProcess(),
159 VirtualQueryEx(HANDLE hProcess,
161 PMEMORY_BASIC_INFORMATION lpBuffer,
167 Status = NtQueryVirtualMemory(hProcess,
169 MemoryBasicInformation,
171 sizeof(MEMORY_BASIC_INFORMATION),
173 if (!NT_SUCCESS(Status))
175 SetLastErrorByStatus(Status);
176 return(ResultLength);
178 return(ResultLength);
183 VirtualUnlock(LPVOID lpAddress,
189 Status = NtUnlockVirtualMemory(NtCurrentProcess(),
193 if (!NT_SUCCESS(Status))
195 SetLastErrorByStatus(Status);