- NDK 0.98, now with versionned headers. Too many changes to list, see the TinyKRNL...
[reactos.git] / reactos / include / ndk / mmfuncs.h
index 596cc0b..75fa3c8 100644 (file)
@@ -1,4 +1,4 @@
-/*++ NDK Version: 0095
+/*++ NDK Version: 0098
 
 Copyright (c) Alex Ionescu.  All rights reserved.
 
@@ -12,7 +12,7 @@ Abstract:
 
 Author:
 
-    Alex Ionescu (alex.ionescu@reactos.com)   06-Oct-2004
+    Alex Ionescu (alexi@tinykrnl.org) - Updated - 27-Feb-2006
 
 --*/
 
@@ -22,10 +22,28 @@ Author:
 //
 // Dependencies
 //
+#include <umtypes.h>
+
+#ifndef NTOS_MODE_USER
 
 //
 // Section Functions
 //
+NTSTATUS
+NTAPI
+MmMapViewOfSection(
+    IN PVOID SectionObject,
+    IN PEPROCESS Process,
+    IN OUT PVOID *BaseAddress,
+    IN ULONG ZeroBits,
+    IN ULONG CommitSize,
+    IN OUT PLARGE_INTEGER SectionOffset OPTIONAL,
+    IN OUT PULONG ViewSize,
+    IN SECTION_INHERIT InheritDisposition,
+    IN ULONG AllocationType,
+    IN ULONG Protect
+);
+
 NTSTATUS
 NTAPI
 MmUnmapViewOfSection(
@@ -34,3 +52,358 @@ MmUnmapViewOfSection(
 );
 
 #endif
+
+//
+// Native calls
+//
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtAreMappedFilesTheSame(
+    IN PVOID File1MappedAsAnImage,
+    IN PVOID File2MappedAsFile
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtAllocateVirtualMemory(
+    IN HANDLE ProcessHandle,
+    IN OUT PVOID *BaseAddress,
+    IN ULONG ZeroBits,
+    IN OUT PSIZE_T RegionSize,
+    IN ULONG AllocationType,
+    IN ULONG Protect
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtCreatePagingFile(
+    IN PUNICODE_STRING FileName,
+    IN PLARGE_INTEGER InitialSize,
+    IN PLARGE_INTEGER MaxiumSize,
+    IN ULONG Reserved
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtCreateSection(
+    OUT PHANDLE SectionHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
+    IN PLARGE_INTEGER MaximumSize OPTIONAL,
+    IN ULONG SectionPageProtection OPTIONAL,
+    IN ULONG AllocationAttributes,
+    IN HANDLE FileHandle OPTIONAL
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtExtendSection(
+    IN HANDLE SectionHandle,
+    IN PLARGE_INTEGER NewMaximumSize
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtFlushVirtualMemory(
+    IN HANDLE ProcessHandle,
+    IN PVOID BaseAddress,
+    IN ULONG NumberOfBytesToFlush,
+    OUT PULONG NumberOfBytesFlushed OPTIONAL
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtFreeVirtualMemory(
+    IN HANDLE ProcessHandle,
+    IN PVOID *BaseAddress,
+    IN PSIZE_T RegionSize,
+    IN ULONG FreeType
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtLockVirtualMemory(
+    HANDLE ProcessHandle,
+    PVOID BaseAddress,
+    ULONG NumberOfBytesToLock,
+    PULONG NumberOfBytesLocked
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtMapViewOfSection(
+    IN HANDLE SectionHandle,
+    IN HANDLE ProcessHandle,
+    IN OUT PVOID *BaseAddress,
+    IN ULONG ZeroBits,
+    IN ULONG CommitSize,
+    IN OUT PLARGE_INTEGER SectionOffset OPTIONAL,
+    IN OUT PSIZE_T ViewSize,
+    IN SECTION_INHERIT InheritDisposition,
+    IN ULONG AllocationType,
+    IN ULONG AccessProtection
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtOpenSection(
+    OUT PHANDLE SectionHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtProtectVirtualMemory(
+    IN HANDLE ProcessHandle,
+    IN PVOID *BaseAddress,
+    IN ULONG *NumberOfBytesToProtect,
+    IN ULONG NewAccessProtection,
+    OUT PULONG OldAccessProtection
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtQuerySection(
+    IN HANDLE SectionHandle,
+    IN SECTION_INFORMATION_CLASS SectionInformationClass,
+    OUT PVOID SectionInformation,
+    IN ULONG Length,
+    OUT PULONG ResultLength
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtQueryVirtualMemory(
+    IN HANDLE ProcessHandle,
+    IN PVOID Address,
+    IN MEMORY_INFORMATION_CLASS VirtualMemoryInformationClass,
+    OUT PVOID VirtualMemoryInformation,
+    IN ULONG Length,
+    OUT PULONG ResultLength
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtReadVirtualMemory(
+    IN HANDLE ProcessHandle,
+    IN PVOID BaseAddress,
+    OUT PVOID Buffer,
+    IN ULONG NumberOfBytesToRead,
+    OUT PULONG NumberOfBytesRead
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtUnlockVirtualMemory(
+    IN HANDLE ProcessHandle,
+    IN PVOID BaseAddress,
+    IN ULONG  NumberOfBytesToUnlock,
+    OUT PULONG NumberOfBytesUnlocked OPTIONAL
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtUnmapViewOfSection(
+    IN HANDLE ProcessHandle,
+    IN PVOID BaseAddress
+);
+
+NTSYSCALLAPI
+NTSTATUS
+NTAPI
+NtWriteVirtualMemory(
+    IN HANDLE ProcessHandle,
+    IN PVOID  BaseAddress,
+    IN PVOID Buffer,
+    IN ULONG NumberOfBytesToWrite,
+    OUT PULONG NumberOfBytesWritten
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwAreMappedFilesTheSame(
+    IN PVOID File1MappedAsAnImage,
+    IN PVOID File2MappedAsFile
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwAllocateVirtualMemory(
+    IN HANDLE ProcessHandle,
+    IN OUT PVOID *BaseAddress,
+    IN ULONG ZeroBits,
+    IN OUT PSIZE_T RegionSize,
+    IN ULONG AllocationType,
+    IN ULONG Protect
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwCreatePagingFile(
+    IN PUNICODE_STRING FileName,
+    IN PLARGE_INTEGER InitialSize,
+    IN PLARGE_INTEGER MaxiumSize,
+    IN ULONG Reserved
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwCreateSection(
+    OUT PHANDLE SectionHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
+    IN PLARGE_INTEGER MaximumSize OPTIONAL,
+    IN ULONG SectionPageProtection OPTIONAL,
+    IN ULONG AllocationAttributes,
+    IN HANDLE FileHandle OPTIONAL
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwExtendSection(
+    IN HANDLE SectionHandle,
+    IN PLARGE_INTEGER NewMaximumSize
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwFreeVirtualMemory(
+    IN HANDLE ProcessHandle,
+    IN PVOID *BaseAddress,
+    IN PSIZE_T RegionSize,
+    IN ULONG FreeType
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwLockVirtualMemory(
+    HANDLE ProcessHandle,
+    PVOID BaseAddress,
+    ULONG NumberOfBytesToLock,
+    PULONG NumberOfBytesLocked
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwMapViewOfSection(
+    IN HANDLE SectionHandle,
+    IN HANDLE ProcessHandle,
+    IN OUT PVOID *BaseAddress,
+    IN ULONG ZeroBits,
+    IN ULONG CommitSize,
+    IN OUT PLARGE_INTEGER SectionOffset OPTIONAL,
+    IN OUT PSIZE_T ViewSize,
+    IN SECTION_INHERIT InheritDisposition,
+    IN ULONG AllocationType,
+    IN ULONG AccessProtection
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwOpenSection(
+    OUT PHANDLE SectionHandle,
+    IN ACCESS_MASK DesiredAccess,
+    IN POBJECT_ATTRIBUTES ObjectAttributes
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwProtectVirtualMemory(
+    IN HANDLE ProcessHandle,
+    IN PVOID *BaseAddress,
+    IN ULONG *NumberOfBytesToProtect,
+    IN ULONG NewAccessProtection,
+    OUT PULONG OldAccessProtection
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwQuerySection(
+    IN HANDLE SectionHandle,
+    IN SECTION_INFORMATION_CLASS SectionInformationClass,
+    OUT PVOID SectionInformation,
+    IN ULONG Length,
+    OUT PULONG ResultLength
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwQueryVirtualMemory(
+    IN HANDLE ProcessHandle,
+    IN PVOID Address,
+    IN MEMORY_INFORMATION_CLASS VirtualMemoryInformationClass,
+    OUT PVOID VirtualMemoryInformation,
+    IN ULONG Length,
+    OUT PULONG ResultLength
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwReadVirtualMemory(
+    IN HANDLE ProcessHandle,
+    IN PVOID BaseAddress,
+    OUT PVOID Buffer,
+    IN ULONG NumberOfBytesToRead,
+    OUT PULONG NumberOfBytesRead
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwUnlockVirtualMemory(
+    IN HANDLE ProcessHandle,
+    IN PVOID BaseAddress,
+    IN ULONG  NumberOfBytesToUnlock,
+    OUT PULONG NumberOfBytesUnlocked OPTIONAL
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwUnmapViewOfSection(
+    IN HANDLE ProcessHandle,
+    IN PVOID BaseAddress
+);
+
+NTSYSAPI
+NTSTATUS
+NTAPI
+ZwWriteVirtualMemory(
+    IN HANDLE ProcessHandle,
+    IN PVOID  BaseAddress,
+    IN PVOID Buffer,
+    IN ULONG NumberOfBytesToWrite,
+    OUT PULONG NumberOfBytesWritten
+);
+
+#endif