explorer:
[reactos.git] / reactos / include / ndk / mmfuncs.h
1 /*++ NDK Version: 0095
2
3 Copyright (c) Alex Ionescu. All rights reserved.
4
5 Header Name:
6
7 mmfuncs.h
8
9 Abstract:
10
11 Functions definitions for the Memory Manager.
12
13 Author:
14
15 Alex Ionescu (alex.ionescu@reactos.com) 06-Oct-2004
16
17 --*/
18
19 #ifndef _MMFUNCS_H
20 #define _MMFUNCS_H
21
22 //
23 // Dependencies
24 //
25 #include <umtypes.h>
26
27 #ifndef NTOS_MODE_USER
28
29 //
30 // Section Functions
31 //
32 NTSTATUS
33 NTAPI
34 MmUnmapViewOfSection(
35 struct _EPROCESS* Process,
36 PVOID BaseAddress
37 );
38
39 #endif
40
41 //
42 // Native calls
43 //
44 NTSYSCALLAPI
45 NTSTATUS
46 NTAPI
47 NtAllocateVirtualMemory(
48 IN HANDLE ProcessHandle,
49 IN OUT PVOID *BaseAddress,
50 IN ULONG ZeroBits,
51 IN OUT PSIZE_T RegionSize,
52 IN ULONG AllocationType,
53 IN ULONG Protect
54 );
55
56 NTSTATUS
57 NTAPI
58 NtCreatePagingFile(
59 IN PUNICODE_STRING FileName,
60 IN PLARGE_INTEGER InitialSize,
61 IN PLARGE_INTEGER MaxiumSize,
62 IN ULONG Reserved
63 );
64
65 NTSYSCALLAPI
66 NTSTATUS
67 NTAPI
68 NtCreateSection(
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
76 );
77
78 NTSTATUS
79 NTAPI
80 NtExtendSection(
81 IN HANDLE SectionHandle,
82 IN PLARGE_INTEGER NewMaximumSize
83 );
84
85 NTSTATUS
86 NTAPI
87 NtFlushVirtualMemory(
88 IN HANDLE ProcessHandle,
89 IN PVOID BaseAddress,
90 IN ULONG NumberOfBytesToFlush,
91 OUT PULONG NumberOfBytesFlushed OPTIONAL
92 );
93
94 NTSYSCALLAPI
95 NTSTATUS
96 NTAPI
97 NtFreeVirtualMemory(
98 IN HANDLE ProcessHandle,
99 IN PVOID *BaseAddress,
100 IN PSIZE_T RegionSize,
101 IN ULONG FreeType
102 );
103
104 NTSTATUS
105 NTAPI
106 NtLockVirtualMemory(
107 HANDLE ProcessHandle,
108 PVOID BaseAddress,
109 ULONG NumberOfBytesToLock,
110 PULONG NumberOfBytesLocked
111 );
112
113 NTSTATUS
114 NTAPI
115 NtMapViewOfSection(
116 IN HANDLE SectionHandle,
117 IN HANDLE ProcessHandle,
118 IN OUT PVOID *BaseAddress,
119 IN ULONG ZeroBits,
120 IN ULONG CommitSize,
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
126 );
127
128 NTSTATUS
129 NTAPI
130 NtOpenSection(
131 OUT PHANDLE SectionHandle,
132 IN ACCESS_MASK DesiredAccess,
133 IN POBJECT_ATTRIBUTES ObjectAttributes
134 );
135
136 NTSTATUS
137 NTAPI
138 NtProtectVirtualMemory(
139 IN HANDLE ProcessHandle,
140 IN PVOID *BaseAddress,
141 IN ULONG *NumberOfBytesToProtect,
142 IN ULONG NewAccessProtection,
143 OUT PULONG OldAccessProtection
144 );
145
146 NTSTATUS
147 NTAPI
148 NtQuerySection(
149 IN HANDLE SectionHandle,
150 IN SECTION_INFORMATION_CLASS SectionInformationClass,
151 OUT PVOID SectionInformation,
152 IN ULONG Length,
153 OUT PULONG ResultLength
154 );
155
156 NTSTATUS
157 NTAPI
158 NtQueryVirtualMemory(
159 IN HANDLE ProcessHandle,
160 IN PVOID Address,
161 IN MEMORY_INFORMATION_CLASS VirtualMemoryInformationClass,
162 OUT PVOID VirtualMemoryInformation,
163 IN ULONG Length,
164 OUT PULONG ResultLength
165 );
166
167 NTSTATUS
168 NTAPI
169 NtReadVirtualMemory(
170 IN HANDLE ProcessHandle,
171 IN PVOID BaseAddress,
172 OUT PVOID Buffer,
173 IN ULONG NumberOfBytesToRead,
174 OUT PULONG NumberOfBytesRead
175 );
176
177 NTSTATUS
178 NTAPI
179 NtUnlockVirtualMemory(
180 IN HANDLE ProcessHandle,
181 IN PVOID BaseAddress,
182 IN ULONG NumberOfBytesToUnlock,
183 OUT PULONG NumberOfBytesUnlocked OPTIONAL
184 );
185
186 NTSTATUS
187 NTAPI
188 NtUnmapViewOfSection(
189 IN HANDLE ProcessHandle,
190 IN PVOID BaseAddress
191 );
192
193 NTSTATUS
194 NTAPI
195 NtWriteVirtualMemory(
196 IN HANDLE ProcessHandle,
197 IN PVOID BaseAddress,
198 IN PVOID Buffer,
199 IN ULONG NumberOfBytesToWrite,
200 OUT PULONG NumberOfBytesWritten
201 );
202
203 NTSYSCALLAPI
204 NTSTATUS
205 NTAPI
206 ZwAllocateVirtualMemory(
207 IN HANDLE ProcessHandle,
208 IN OUT PVOID *BaseAddress,
209 IN ULONG ZeroBits,
210 IN OUT PSIZE_T RegionSize,
211 IN ULONG AllocationType,
212 IN ULONG Protect
213 );
214
215 NTSTATUS
216 NTAPI
217 ZwCreatePagingFile(
218 IN PUNICODE_STRING FileName,
219 IN PLARGE_INTEGER InitialSize,
220 IN PLARGE_INTEGER MaxiumSize,
221 IN ULONG Reserved
222 );
223
224 NTSYSCALLAPI
225 NTSTATUS
226 NTAPI
227 ZwCreateSection(
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
235 );
236
237 NTSTATUS
238 NTAPI
239 ZwExtendSection(
240 IN HANDLE SectionHandle,
241 IN PLARGE_INTEGER NewMaximumSize
242 );
243
244 NTSYSCALLAPI
245 NTSTATUS
246 NTAPI
247 ZwFreeVirtualMemory(
248 IN HANDLE ProcessHandle,
249 IN PVOID *BaseAddress,
250 IN PSIZE_T RegionSize,
251 IN ULONG FreeType
252 );
253
254 NTSTATUS
255 NTAPI
256 ZwLockVirtualMemory(
257 HANDLE ProcessHandle,
258 PVOID BaseAddress,
259 ULONG NumberOfBytesToLock,
260 PULONG NumberOfBytesLocked
261 );
262
263 NTSYSAPI
264 NTSTATUS
265 NTAPI
266 ZwMapViewOfSection(
267 IN HANDLE SectionHandle,
268 IN HANDLE ProcessHandle,
269 IN OUT PVOID *BaseAddress,
270 IN ULONG ZeroBits,
271 IN ULONG CommitSize,
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
277 );
278
279 NTSYSAPI
280 NTSTATUS
281 NTAPI
282 ZwOpenSection(
283 OUT PHANDLE SectionHandle,
284 IN ACCESS_MASK DesiredAccess,
285 IN POBJECT_ATTRIBUTES ObjectAttributes
286 );
287
288 NTSTATUS
289 NTAPI
290 ZwProtectVirtualMemory(
291 IN HANDLE ProcessHandle,
292 IN PVOID *BaseAddress,
293 IN ULONG *NumberOfBytesToProtect,
294 IN ULONG NewAccessProtection,
295 OUT PULONG OldAccessProtection
296 );
297
298 NTSTATUS
299 NTAPI
300 ZwQuerySection(
301 IN HANDLE SectionHandle,
302 IN SECTION_INFORMATION_CLASS SectionInformationClass,
303 OUT PVOID SectionInformation,
304 IN ULONG Length,
305 OUT PULONG ResultLength
306 );
307
308 NTSTATUS
309 NTAPI
310 ZwQueryVirtualMemory(
311 IN HANDLE ProcessHandle,
312 IN PVOID Address,
313 IN MEMORY_INFORMATION_CLASS VirtualMemoryInformationClass,
314 OUT PVOID VirtualMemoryInformation,
315 IN ULONG Length,
316 OUT PULONG ResultLength
317 );
318
319 NTSTATUS
320 NTAPI
321 ZwReadVirtualMemory(
322 IN HANDLE ProcessHandle,
323 IN PVOID BaseAddress,
324 OUT PVOID Buffer,
325 IN ULONG NumberOfBytesToRead,
326 OUT PULONG NumberOfBytesRead
327 );
328
329 NTSTATUS
330 NTAPI
331 ZwUnlockVirtualMemory(
332 IN HANDLE ProcessHandle,
333 IN PVOID BaseAddress,
334 IN ULONG NumberOfBytesToUnlock,
335 OUT PULONG NumberOfBytesUnlocked OPTIONAL
336 );
337
338 NTSYSAPI
339 NTSTATUS
340 NTAPI
341 ZwUnmapViewOfSection(
342 IN HANDLE ProcessHandle,
343 IN PVOID BaseAddress
344 );
345
346 NTSTATUS
347 NTAPI
348 ZwWriteVirtualMemory(
349 IN HANDLE ProcessHandle,
350 IN PVOID BaseAddress,
351 IN PVOID Buffer,
352 IN ULONG NumberOfBytesToWrite,
353 OUT PULONG NumberOfBytesWritten
354 );
355
356 #endif