1 /* $Id: virtual.c,v 1.11 2003/07/10 18:50:51 chorns Exp $
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
);