Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenmmfuncs.h
Go to the documentation of this file.
00001 /*++ NDK Version: 0098 00002 00003 Copyright (c) Alex Ionescu. All rights reserved. 00004 00005 Header Name: 00006 00007 mmfuncs.h 00008 00009 Abstract: 00010 00011 Functions definitions for the Memory Manager. 00012 00013 Author: 00014 00015 Alex Ionescu (alexi@tinykrnl.org) - Updated - 27-Feb-2006 00016 00017 --*/ 00018 00019 #ifndef _MMFUNCS_H 00020 #define _MMFUNCS_H 00021 00022 // 00023 // Dependencies 00024 // 00025 #include <umtypes.h> 00026 #include <mmtypes.h> 00027 00028 #ifndef NTOS_MODE_USER 00029 00030 // 00031 // Section Functions 00032 // 00033 NTSTATUS 00034 NTAPI 00035 MmCreateSection( 00036 OUT PVOID *SectionObject, 00037 IN ACCESS_MASK DesiredAccess, 00038 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, 00039 IN PLARGE_INTEGER MaximumSize, 00040 IN ULONG SectionPageProtection, 00041 IN ULONG AllocationAttributes, 00042 IN HANDLE FileHandle OPTIONAL, 00043 IN PFILE_OBJECT File OPTIONAL 00044 ); 00045 00046 NTSTATUS 00047 NTAPI 00048 MmMapViewOfSection( 00049 IN PVOID SectionObject, 00050 IN PEPROCESS Process, 00051 IN OUT PVOID *BaseAddress, 00052 IN ULONG_PTR ZeroBits, 00053 IN SIZE_T CommitSize, 00054 IN OUT PLARGE_INTEGER SectionOffset OPTIONAL, 00055 IN OUT PSIZE_T ViewSize, 00056 IN SECTION_INHERIT InheritDisposition, 00057 IN ULONG AllocationType, 00058 IN ULONG Protect 00059 ); 00060 00061 NTSTATUS 00062 NTAPI 00063 MmUnmapViewOfSection( 00064 struct _EPROCESS* Process, 00065 PVOID BaseAddress 00066 ); 00067 00068 #endif 00069 00070 // 00071 // Native calls 00072 // 00073 NTSYSCALLAPI 00074 NTSTATUS 00075 NTAPI 00076 NtAreMappedFilesTheSame( 00077 IN PVOID File1MappedAsAnImage, 00078 IN PVOID File2MappedAsFile 00079 ); 00080 00081 NTSTATUS 00082 NTAPI 00083 NtAllocateUserPhysicalPages( 00084 IN HANDLE ProcessHandle, 00085 IN OUT PULONG_PTR NumberOfPages, 00086 IN OUT PULONG_PTR UserPfnArray 00087 ); 00088 00089 NTSYSCALLAPI 00090 NTSTATUS 00091 NTAPI 00092 NtAllocateVirtualMemory( 00093 IN HANDLE ProcessHandle, 00094 IN OUT PVOID *BaseAddress, 00095 IN ULONG_PTR ZeroBits, 00096 IN OUT PSIZE_T RegionSize, 00097 IN ULONG AllocationType, 00098 IN ULONG Protect 00099 ); 00100 00101 NTSYSCALLAPI 00102 NTSTATUS 00103 NTAPI 00104 NtCreatePagingFile( 00105 IN PUNICODE_STRING FileName, 00106 IN PLARGE_INTEGER InitialSize, 00107 IN PLARGE_INTEGER MaxiumSize, 00108 IN ULONG Reserved 00109 ); 00110 00111 NTSYSCALLAPI 00112 NTSTATUS 00113 NTAPI 00114 NtCreateSection( 00115 OUT PHANDLE SectionHandle, 00116 IN ACCESS_MASK DesiredAccess, 00117 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, 00118 IN PLARGE_INTEGER MaximumSize OPTIONAL, 00119 IN ULONG SectionPageProtection OPTIONAL, 00120 IN ULONG AllocationAttributes, 00121 IN HANDLE FileHandle OPTIONAL 00122 ); 00123 00124 NTSYSCALLAPI 00125 NTSTATUS 00126 NTAPI 00127 NtExtendSection( 00128 IN HANDLE SectionHandle, 00129 IN PLARGE_INTEGER NewMaximumSize 00130 ); 00131 00132 NTSYSCALLAPI 00133 NTSTATUS 00134 NTAPI 00135 NtFlushVirtualMemory( 00136 IN HANDLE ProcessHandle, 00137 IN OUT PVOID *BaseAddress, 00138 IN OUT PSIZE_T RegionSize, 00139 OUT PIO_STATUS_BLOCK IoStatus 00140 ); 00141 00142 NTSTATUS 00143 NTAPI 00144 NtFreeUserPhysicalPages( 00145 IN HANDLE ProcessHandle, 00146 IN OUT PULONG_PTR NumberOfPages, 00147 IN OUT PULONG_PTR UserPfnArray 00148 ); 00149 00150 NTSYSCALLAPI 00151 NTSTATUS 00152 NTAPI 00153 NtFreeVirtualMemory( 00154 IN HANDLE ProcessHandle, 00155 IN PVOID *BaseAddress, 00156 IN PSIZE_T RegionSize, 00157 IN ULONG FreeType 00158 ); 00159 00160 00161 NTSTATUS 00162 NTAPI 00163 NtGetWriteWatch( 00164 IN HANDLE ProcessHandle, 00165 IN ULONG Flags, 00166 IN PVOID BaseAddress, 00167 IN SIZE_T RegionSize, 00168 IN PVOID *UserAddressArray, 00169 OUT PULONG_PTR EntriesInUserAddressArray, 00170 OUT PULONG Granularity 00171 ); 00172 00173 NTSYSCALLAPI 00174 NTSTATUS 00175 NTAPI 00176 NtLockVirtualMemory( 00177 IN HANDLE ProcessHandle, 00178 IN OUT PVOID *BaseAddress, 00179 IN OUT PSIZE_T NumberOfBytesToLock, 00180 IN ULONG MapType 00181 ); 00182 00183 NTSTATUS 00184 NTAPI 00185 NtMapUserPhysicalPages( 00186 IN PVOID VirtualAddresses, 00187 IN ULONG_PTR NumberOfPages, 00188 IN OUT PULONG_PTR UserPfnArray 00189 ); 00190 00191 NTSTATUS 00192 NTAPI 00193 NtMapUserPhysicalPagesScatter( 00194 IN PVOID *VirtualAddresses, 00195 IN ULONG_PTR NumberOfPages, 00196 IN OUT PULONG_PTR UserPfnArray 00197 ); 00198 00199 NTSYSCALLAPI 00200 NTSTATUS 00201 NTAPI 00202 NtMapViewOfSection( 00203 IN HANDLE SectionHandle, 00204 IN HANDLE ProcessHandle, 00205 IN OUT PVOID *BaseAddress, 00206 IN ULONG_PTR ZeroBits, 00207 IN SIZE_T CommitSize, 00208 IN OUT PLARGE_INTEGER SectionOffset OPTIONAL, 00209 IN OUT PSIZE_T ViewSize, 00210 IN SECTION_INHERIT InheritDisposition, 00211 IN ULONG AllocationType, 00212 IN ULONG AccessProtection 00213 ); 00214 00215 NTSYSCALLAPI 00216 NTSTATUS 00217 NTAPI 00218 NtOpenSection( 00219 OUT PHANDLE SectionHandle, 00220 IN ACCESS_MASK DesiredAccess, 00221 IN POBJECT_ATTRIBUTES ObjectAttributes 00222 ); 00223 00224 NTSYSCALLAPI 00225 NTSTATUS 00226 NTAPI 00227 NtProtectVirtualMemory( 00228 IN HANDLE ProcessHandle, 00229 IN PVOID *BaseAddress, 00230 IN SIZE_T *NumberOfBytesToProtect, 00231 IN ULONG NewAccessProtection, 00232 OUT PULONG OldAccessProtection 00233 ); 00234 00235 NTSYSCALLAPI 00236 NTSTATUS 00237 NTAPI 00238 NtQuerySection( 00239 IN HANDLE SectionHandle, 00240 IN SECTION_INFORMATION_CLASS SectionInformationClass, 00241 OUT PVOID SectionInformation, 00242 IN SIZE_T Length, 00243 OUT PSIZE_T ResultLength 00244 ); 00245 00246 NTSYSCALLAPI 00247 NTSTATUS 00248 NTAPI 00249 NtQueryVirtualMemory( 00250 IN HANDLE ProcessHandle, 00251 IN PVOID Address, 00252 IN MEMORY_INFORMATION_CLASS VirtualMemoryInformationClass, 00253 OUT PVOID VirtualMemoryInformation, 00254 IN SIZE_T Length, 00255 OUT PSIZE_T ResultLength 00256 ); 00257 00258 NTSYSCALLAPI 00259 NTSTATUS 00260 NTAPI 00261 NtReadVirtualMemory( 00262 IN HANDLE ProcessHandle, 00263 IN PVOID BaseAddress, 00264 OUT PVOID Buffer, 00265 IN SIZE_T NumberOfBytesToRead, 00266 OUT PSIZE_T NumberOfBytesRead 00267 ); 00268 00269 NTSTATUS 00270 NTAPI 00271 NtResetWriteWatch( 00272 IN HANDLE ProcessHandle, 00273 IN PVOID BaseAddress, 00274 IN SIZE_T RegionSize 00275 ); 00276 00277 NTSYSCALLAPI 00278 NTSTATUS 00279 NTAPI 00280 NtUnlockVirtualMemory( 00281 IN HANDLE ProcessHandle, 00282 IN OUT PVOID *BaseAddress, 00283 IN OUT PSIZE_T NumberOfBytesToUnlock, 00284 IN ULONG MapType 00285 ); 00286 00287 NTSYSCALLAPI 00288 NTSTATUS 00289 NTAPI 00290 NtUnmapViewOfSection( 00291 IN HANDLE ProcessHandle, 00292 IN PVOID BaseAddress 00293 ); 00294 00295 NTSYSCALLAPI 00296 NTSTATUS 00297 NTAPI 00298 NtWriteVirtualMemory( 00299 IN HANDLE ProcessHandle, 00300 IN PVOID BaseAddress, 00301 IN PVOID Buffer, 00302 IN SIZE_T NumberOfBytesToWrite, 00303 OUT PSIZE_T NumberOfBytesWritten 00304 ); 00305 00306 NTSYSAPI 00307 NTSTATUS 00308 NTAPI 00309 ZwAreMappedFilesTheSame( 00310 IN PVOID File1MappedAsAnImage, 00311 IN PVOID File2MappedAsFile 00312 ); 00313 00314 NTSYSAPI 00315 NTSTATUS 00316 NTAPI 00317 ZwAllocateVirtualMemory( 00318 IN HANDLE ProcessHandle, 00319 IN OUT PVOID *BaseAddress, 00320 IN ULONG_PTR ZeroBits, 00321 IN OUT PSIZE_T RegionSize, 00322 IN ULONG AllocationType, 00323 IN ULONG Protect 00324 ); 00325 00326 NTSYSAPI 00327 NTSTATUS 00328 NTAPI 00329 ZwCreatePagingFile( 00330 IN PUNICODE_STRING FileName, 00331 IN PLARGE_INTEGER InitialSize, 00332 IN PLARGE_INTEGER MaxiumSize, 00333 IN ULONG Reserved 00334 ); 00335 00336 NTSYSAPI 00337 NTSTATUS 00338 NTAPI 00339 ZwCreateSection( 00340 OUT PHANDLE SectionHandle, 00341 IN ACCESS_MASK DesiredAccess, 00342 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, 00343 IN PLARGE_INTEGER MaximumSize OPTIONAL, 00344 IN ULONG SectionPageProtection OPTIONAL, 00345 IN ULONG AllocationAttributes, 00346 IN HANDLE FileHandle OPTIONAL 00347 ); 00348 00349 NTSYSAPI 00350 NTSTATUS 00351 NTAPI 00352 ZwExtendSection( 00353 IN HANDLE SectionHandle, 00354 IN PLARGE_INTEGER NewMaximumSize 00355 ); 00356 00357 NTSYSAPI 00358 NTSTATUS 00359 NTAPI 00360 ZwFreeVirtualMemory( 00361 IN HANDLE ProcessHandle, 00362 IN PVOID *BaseAddress, 00363 IN PSIZE_T RegionSize, 00364 IN ULONG FreeType 00365 ); 00366 00367 NTSYSAPI 00368 NTSTATUS 00369 NTAPI 00370 ZwLockVirtualMemory( 00371 IN HANDLE ProcessHandle, 00372 IN OUT PVOID *BaseAddress, 00373 IN OUT PSIZE_T NumberOfBytesToLock, 00374 IN ULONG MapType 00375 ); 00376 00377 NTSYSAPI 00378 NTSTATUS 00379 NTAPI 00380 ZwMapViewOfSection( 00381 IN HANDLE SectionHandle, 00382 IN HANDLE ProcessHandle, 00383 IN OUT PVOID *BaseAddress, 00384 IN ULONG_PTR ZeroBits, 00385 IN SIZE_T CommitSize, 00386 IN OUT PLARGE_INTEGER SectionOffset OPTIONAL, 00387 IN OUT PSIZE_T ViewSize, 00388 IN SECTION_INHERIT InheritDisposition, 00389 IN ULONG AllocationType, 00390 IN ULONG AccessProtection 00391 ); 00392 00393 NTSYSAPI 00394 NTSTATUS 00395 NTAPI 00396 ZwOpenSection( 00397 OUT PHANDLE SectionHandle, 00398 IN ACCESS_MASK DesiredAccess, 00399 IN POBJECT_ATTRIBUTES ObjectAttributes 00400 ); 00401 00402 NTSYSAPI 00403 NTSTATUS 00404 NTAPI 00405 ZwProtectVirtualMemory( 00406 IN HANDLE ProcessHandle, 00407 IN PVOID *BaseAddress, 00408 IN SIZE_T *NumberOfBytesToProtect, 00409 IN ULONG NewAccessProtection, 00410 OUT PULONG OldAccessProtection 00411 ); 00412 00413 NTSYSAPI 00414 NTSTATUS 00415 NTAPI 00416 ZwQuerySection( 00417 IN HANDLE SectionHandle, 00418 IN SECTION_INFORMATION_CLASS SectionInformationClass, 00419 OUT PVOID SectionInformation, 00420 IN SIZE_T Length, 00421 OUT PSIZE_T ResultLength 00422 ); 00423 00424 NTSYSAPI 00425 NTSTATUS 00426 NTAPI 00427 ZwQueryVirtualMemory( 00428 IN HANDLE ProcessHandle, 00429 IN PVOID Address, 00430 IN MEMORY_INFORMATION_CLASS VirtualMemoryInformationClass, 00431 OUT PVOID VirtualMemoryInformation, 00432 IN SIZE_T Length, 00433 OUT PSIZE_T ResultLength 00434 ); 00435 00436 NTSYSAPI 00437 NTSTATUS 00438 NTAPI 00439 ZwReadVirtualMemory( 00440 IN HANDLE ProcessHandle, 00441 IN PVOID BaseAddress, 00442 OUT PVOID Buffer, 00443 IN SIZE_T NumberOfBytesToRead, 00444 OUT PSIZE_T NumberOfBytesRead 00445 ); 00446 00447 NTSYSAPI 00448 NTSTATUS 00449 NTAPI 00450 ZwUnlockVirtualMemory( 00451 IN HANDLE ProcessHandle, 00452 IN OUT PVOID *BaseAddress, 00453 IN OUT PSIZE_T NumberOfBytesToUnlock, 00454 IN ULONG MapType 00455 ); 00456 00457 NTSYSAPI 00458 NTSTATUS 00459 NTAPI 00460 ZwUnmapViewOfSection( 00461 IN HANDLE ProcessHandle, 00462 IN PVOID BaseAddress 00463 ); 00464 00465 NTSYSAPI 00466 NTSTATUS 00467 NTAPI 00468 ZwWriteVirtualMemory( 00469 IN HANDLE ProcessHandle, 00470 IN PVOID BaseAddress, 00471 IN PVOID Buffer, 00472 IN SIZE_T NumberOfBytesToWrite, 00473 OUT PSIZE_T NumberOfBytesWritten 00474 ); 00475 00476 #endif Generated on Sun May 27 2012 04:30:56 for ReactOS by
1.7.6.1
|