// Section management
using NtCreateSection_t = NTSTATUS(NTAPI*)(
PHANDLE SectionHandle, ACCESS_MASK DesiredAccess,
POBJECT_ATTRIBUTES ObjectAttributes, PLARGE_INTEGER MaximumSize,
ULONG SectionPageProtection, ULONG AllocationAttributes,
HANDLE FileHandle
);
using NtMapViewOfSection_t = NTSTATUS(NTAPI*)(
HANDLE SectionHandle, HANDLE ProcessHandle, PVOID* BaseAddress,
ULONG_PTR ZeroBits, SIZE_T CommitSize, PLARGE_INTEGER SectionOffset,
PSIZE_T ViewSize, ESectionInherit InheritDisposition,
ULONG AllocationType, ULONG Win32Protect
);
using NtUnmapViewOfSection_t = NTSTATUS(NTAPI*)(
HANDLE ProcessHandle, PVOID BaseAddress
);
// Memory management
using NtAllocateVirtualMemory_t = NTSTATUS(NTAPI*)(
HANDLE ProcessHandle, PVOID* BaseAddress, ULONG_PTR ZeroBits,
PSIZE_T RegionSize, ULONG AllocationType, ULONG Protect
);
using NtProtectVirtualMemory_t = NTSTATUS(NTAPI*)(
HANDLE ProcessHandle, PVOID* BaseAddress, PSIZE_T RegionSize,
ULONG NewProtect, PULONG OldProtect
);
using NtFreeVirtualMemory_t = NTSTATUS(NTAPI*)(
HANDLE ProcessHandle, PVOID* BaseAddress, PSIZE_T RegionSize,
ULONG FreeType
);
// Heap management
using RtlCreateHeap_t = PVOID(NTAPI*)(
ULONG Flags, PVOID HeapBase, SIZE_T ReserveSize,
SIZE_T CommitSize, PVOID Lock, PVOID Parameters
);
using RtlAllocateHeap_t = PVOID(NTAPI*)(
PVOID HeapHandle, ULONG Flags, SIZE_T Size
);
using RtlDestroyHeap_t = PVOID(NTAPI*)(
PVOID HeapHandle
);
// Handle management
using NtClose_t = NTSTATUS(NTAPI*)(
HANDLE Handle
);