ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

mmfuncs.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.