3 Copyright (c) Alex Ionescu. All rights reserved.
11 Functions definitions for the Memory Manager.
15 Alex Ionescu (alex.ionescu@reactos.com) 06-Oct-2004
27 #ifndef NTOS_MODE_USER
35 struct _EPROCESS
* Process
,
47 NtAllocateVirtualMemory(
48 IN HANDLE ProcessHandle
,
49 IN OUT PVOID
*BaseAddress
,
51 IN OUT PSIZE_T RegionSize
,
52 IN ULONG AllocationType
,
59 IN PUNICODE_STRING FileName
,
60 IN PLARGE_INTEGER InitialSize
,
61 IN PLARGE_INTEGER MaxiumSize
,
69 OUT PHANDLE SectionHandle
,
70 IN ACCESS_MASK DesiredAccess
,
71 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
72 IN PLARGE_INTEGER MaximumSize OPTIONAL
,
73 IN ULONG SectionPageProtection OPTIONAL
,
74 IN ULONG AllocationAttributes
,
75 IN HANDLE FileHandle OPTIONAL
81 IN HANDLE SectionHandle
,
82 IN PLARGE_INTEGER NewMaximumSize
88 IN HANDLE ProcessHandle
,
90 IN ULONG NumberOfBytesToFlush
,
91 OUT PULONG NumberOfBytesFlushed OPTIONAL
98 IN HANDLE ProcessHandle
,
99 IN PVOID
*BaseAddress
,
100 IN PSIZE_T RegionSize
,
107 HANDLE ProcessHandle
,
109 ULONG NumberOfBytesToLock
,
110 PULONG NumberOfBytesLocked
116 IN HANDLE SectionHandle
,
117 IN HANDLE ProcessHandle
,
118 IN OUT PVOID
*BaseAddress
,
121 IN OUT PLARGE_INTEGER SectionOffset OPTIONAL
,
122 IN OUT PSIZE_T ViewSize
,
123 IN SECTION_INHERIT InheritDisposition
,
124 IN ULONG AllocationType
,
125 IN ULONG AccessProtection
131 OUT PHANDLE SectionHandle
,
132 IN ACCESS_MASK DesiredAccess
,
133 IN POBJECT_ATTRIBUTES ObjectAttributes
138 NtProtectVirtualMemory(
139 IN HANDLE ProcessHandle
,
140 IN PVOID
*BaseAddress
,
141 IN ULONG
*NumberOfBytesToProtect
,
142 IN ULONG NewAccessProtection
,
143 OUT PULONG OldAccessProtection
149 IN HANDLE SectionHandle
,
150 IN SECTION_INFORMATION_CLASS SectionInformationClass
,
151 OUT PVOID SectionInformation
,
153 OUT PULONG ResultLength
158 NtQueryVirtualMemory(
159 IN HANDLE ProcessHandle
,
161 IN MEMORY_INFORMATION_CLASS VirtualMemoryInformationClass
,
162 OUT PVOID VirtualMemoryInformation
,
164 OUT PULONG ResultLength
170 IN HANDLE ProcessHandle
,
171 IN PVOID BaseAddress
,
173 IN ULONG NumberOfBytesToRead
,
174 OUT PULONG NumberOfBytesRead
179 NtUnlockVirtualMemory(
180 IN HANDLE ProcessHandle
,
181 IN PVOID BaseAddress
,
182 IN ULONG NumberOfBytesToUnlock
,
183 OUT PULONG NumberOfBytesUnlocked OPTIONAL
188 NtUnmapViewOfSection(
189 IN HANDLE ProcessHandle
,
195 NtWriteVirtualMemory(
196 IN HANDLE ProcessHandle
,
197 IN PVOID BaseAddress
,
199 IN ULONG NumberOfBytesToWrite
,
200 OUT PULONG NumberOfBytesWritten
206 ZwAllocateVirtualMemory(
207 IN HANDLE ProcessHandle
,
208 IN OUT PVOID
*BaseAddress
,
210 IN OUT PSIZE_T RegionSize
,
211 IN ULONG AllocationType
,
218 IN PUNICODE_STRING FileName
,
219 IN PLARGE_INTEGER InitialSize
,
220 IN PLARGE_INTEGER MaxiumSize
,
228 OUT PHANDLE SectionHandle
,
229 IN ACCESS_MASK DesiredAccess
,
230 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
231 IN PLARGE_INTEGER MaximumSize OPTIONAL
,
232 IN ULONG SectionPageProtection OPTIONAL
,
233 IN ULONG AllocationAttributes
,
234 IN HANDLE FileHandle OPTIONAL
240 IN HANDLE SectionHandle
,
241 IN PLARGE_INTEGER NewMaximumSize
248 IN HANDLE ProcessHandle
,
249 IN PVOID
*BaseAddress
,
250 IN PSIZE_T RegionSize
,
257 HANDLE ProcessHandle
,
259 ULONG NumberOfBytesToLock
,
260 PULONG NumberOfBytesLocked
267 IN HANDLE SectionHandle
,
268 IN HANDLE ProcessHandle
,
269 IN OUT PVOID
*BaseAddress
,
272 IN OUT PLARGE_INTEGER SectionOffset OPTIONAL
,
273 IN OUT PSIZE_T ViewSize
,
274 IN SECTION_INHERIT InheritDisposition
,
275 IN ULONG AllocationType
,
276 IN ULONG AccessProtection
283 OUT PHANDLE SectionHandle
,
284 IN ACCESS_MASK DesiredAccess
,
285 IN POBJECT_ATTRIBUTES ObjectAttributes
290 ZwProtectVirtualMemory(
291 IN HANDLE ProcessHandle
,
292 IN PVOID
*BaseAddress
,
293 IN ULONG
*NumberOfBytesToProtect
,
294 IN ULONG NewAccessProtection
,
295 OUT PULONG OldAccessProtection
301 IN HANDLE SectionHandle
,
302 IN SECTION_INFORMATION_CLASS SectionInformationClass
,
303 OUT PVOID SectionInformation
,
305 OUT PULONG ResultLength
310 ZwQueryVirtualMemory(
311 IN HANDLE ProcessHandle
,
313 IN MEMORY_INFORMATION_CLASS VirtualMemoryInformationClass
,
314 OUT PVOID VirtualMemoryInformation
,
316 OUT PULONG ResultLength
322 IN HANDLE ProcessHandle
,
323 IN PVOID BaseAddress
,
325 IN ULONG NumberOfBytesToRead
,
326 OUT PULONG NumberOfBytesRead
331 ZwUnlockVirtualMemory(
332 IN HANDLE ProcessHandle
,
333 IN PVOID BaseAddress
,
334 IN ULONG NumberOfBytesToUnlock
,
335 OUT PULONG NumberOfBytesUnlocked OPTIONAL
341 ZwUnmapViewOfSection(
342 IN HANDLE ProcessHandle
,
348 ZwWriteVirtualMemory(
349 IN HANDLE ProcessHandle
,
350 IN PVOID BaseAddress
,
352 IN ULONG NumberOfBytesToWrite
,
353 OUT PULONG NumberOfBytesWritten