/*** Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. File: AuProcessSectionView.NT.hpp Date: 2022-08-09 Author: Reece ***/ #pragma once namespace Aurora::Process { struct ProcessSectionView : IProcessSectionView { bool bPanicOnEx {}; AuThreadPrimitives::SpinLock spinlock; AuList> allocations; AuUInt GetStart() override; AuUInt GetEnd() override; AuSPtr Allocate(AuUInt uLength) override; AuSPtr MapFileByPath(const AuString &str, AuUInt64 uOffset, AuUInt uLength, AuFS::EFileOpenMode mode, AuFS::EFileAdvisoryLockLevel sectionLock) override; AuSPtr MapFileByObject(const AuSPtr &pStream, AuUInt64 uOffset, AuUInt uLength, Aurora::IO::FS::EFileOpenMode mode, AuFS::EFileAdvisoryLockLevel processLockLevel) override; AuSPtr MapIPCMemory(const AuString &handle, AuUInt64 uOffset, AuUInt uLength, AuFS::EFileOpenMode mode) override; AuSPtr AllocateEx(AuUInt uLength, AuUInt uOffset) override; AuSPtr AllocateEx2(AuUInt uLength, AuUInt uOffset, PageTable permissions) override; AuSPtr MapFileByPathEx(AuUInt viewOffset, const AuString &str, AuUInt64 uOffset, AuUInt uLength, Aurora::IO::FS::EFileOpenMode mode, Aurora::IO::FS::EFileAdvisoryLockLevel processLockLevel) override; AuSPtr MapFileByObjectEx(AuUInt viewOffset, const AuSPtr &pStream, AuUInt64 uOffset, AuUInt uLength, Aurora::IO::FS::EFileOpenMode mode, Aurora::IO::FS::EFileAdvisoryLockLevel processLockLevel) override; AuSPtr MapIPCMemoryEx(AuUInt viewOffset, const AuString &handle, AuUInt64 uOffset, AuUInt uLength, Aurora::IO::FS::EFileOpenMode mode) override; AuList> GetAllocations() override; }; }