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 *****************************************************************/
17 VirtualAllocEx(HANDLE hProcess,
20 DWORD flAllocationType,
25 Status = NtAllocateVirtualMemory(hProcess,
31 if (!NT_SUCCESS(Status))
33 SetLastErrorByStatus(Status);
41 VirtualAlloc(LPVOID lpAddress,
43 DWORD flAllocationType,
46 return(VirtualAllocEx(GetCurrentProcess(),
55 VirtualFreeEx(HANDLE hProcess,
62 Status = NtFreeVirtualMemory(hProcess,
66 if (!NT_SUCCESS(Status))
68 SetLastErrorByStatus(Status);
76 VirtualFree(LPVOID lpAddress,
80 return(VirtualFreeEx(GetCurrentProcess(),
88 VirtualProtect(LPVOID lpAddress,
91 PDWORD lpflOldProtect)
93 return(VirtualProtectEx(GetCurrentProcess(),
102 VirtualProtectEx(HANDLE hProcess,
106 PDWORD lpflOldProtect)
110 Status = NtProtectVirtualMemory(hProcess,
114 (PULONG)lpflOldProtect);
115 if (!NT_SUCCESS(Status))
117 SetLastErrorByStatus(Status);
125 VirtualLock(LPVOID lpAddress,
131 Status = NtLockVirtualMemory(NtCurrentProcess(),
135 if (!NT_SUCCESS(Status))
137 SetLastErrorByStatus(Status);
145 VirtualQuery(LPCVOID lpAddress,
146 PMEMORY_BASIC_INFORMATION lpBuffer,
149 return(VirtualQueryEx(NtCurrentProcess(),
157 VirtualQueryEx(HANDLE hProcess,
159 PMEMORY_BASIC_INFORMATION lpBuffer,
165 Status = NtQueryVirtualMemory(hProcess,
167 MemoryBasicInformation,
169 sizeof(MEMORY_BASIC_INFORMATION),
171 if (!NT_SUCCESS(Status))
173 SetLastErrorByStatus(Status);
174 return(ResultLength);
176 return(ResultLength);
181 VirtualUnlock(LPVOID lpAddress,
187 Status = NtUnlockVirtualMemory(NtCurrentProcess(),
191 if (!NT_SUCCESS(Status))
193 SetLastErrorByStatus(Status);