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 ******************************************************************/
14 /* FUNCTIONS *****************************************************************/
20 VirtualAllocEx(HANDLE hProcess,
23 DWORD flAllocationType,
28 Status = NtAllocateVirtualMemory(hProcess,
34 if (!NT_SUCCESS(Status))
36 SetLastErrorByStatus(Status);
47 VirtualAlloc(LPVOID lpAddress,
49 DWORD flAllocationType,
52 return(VirtualAllocEx(GetCurrentProcess(),
64 VirtualFreeEx(HANDLE hProcess,
71 Status = NtFreeVirtualMemory(hProcess,
75 if (!NT_SUCCESS(Status))
77 SetLastErrorByStatus(Status);
88 VirtualFree(LPVOID lpAddress,
92 return(VirtualFreeEx(GetCurrentProcess(),
103 VirtualProtect(LPVOID lpAddress,
106 PDWORD lpflOldProtect)
108 return(VirtualProtectEx(GetCurrentProcess(),
120 VirtualProtectEx(HANDLE hProcess,
124 PDWORD lpflOldProtect)
128 Status = NtProtectVirtualMemory(hProcess,
132 (PULONG)lpflOldProtect);
133 if (!NT_SUCCESS(Status))
135 SetLastErrorByStatus(Status);
146 VirtualLock(LPVOID lpAddress,
152 Status = NtLockVirtualMemory(NtCurrentProcess(),
156 if (!NT_SUCCESS(Status))
158 SetLastErrorByStatus(Status);
169 VirtualQuery(LPCVOID lpAddress,
170 PMEMORY_BASIC_INFORMATION lpBuffer,
173 return(VirtualQueryEx(NtCurrentProcess(),
184 VirtualQueryEx(HANDLE hProcess,
186 PMEMORY_BASIC_INFORMATION lpBuffer,
192 Status = NtQueryVirtualMemory(hProcess,
194 MemoryBasicInformation,
196 sizeof(MEMORY_BASIC_INFORMATION),
198 if (!NT_SUCCESS(Status))
200 SetLastErrorByStatus(Status);
201 return(ResultLength);
203 return(ResultLength);
211 VirtualUnlock(LPVOID lpAddress,
217 Status = NtUnlockVirtualMemory(NtCurrentProcess(),
221 if (!NT_SUCCESS(Status))
223 SetLastErrorByStatus(Status);