AuroraRuntime/Include/Aurora/Process/IProcessSectionView.hpp
J Reece Wilson 2e5742dd2f [*] Harden Process Section APIs
[*] Refactor IProcessSectionView::MapIPCMemory length type to machine word
2022-08-15 00:41:43 +01:00

38 lines
1.8 KiB
C++

/***
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: IProcessSectionView.hpp
Date: 2022-08-09
Author: Reece
***/
#pragma once
namespace Aurora::Process
{
struct IProcessSectionMapView;
struct IProcessSectionView
{
virtual AuSPtr<IProcessSectionMapView> Allocate(AuUInt length) = 0;
virtual AuSPtr<IProcessSectionMapView> MapFileByPath(const AuString &str,
AuUInt64 offset,
AuUInt length,
Aurora::IO::FS::EFileOpenMode mode,
Aurora::IO::FS::EFileAdvisoryLockLevel processLockLevel) = 0;
virtual AuSPtr<IProcessSectionMapView> MapFileByObject(const AuSPtr<Aurora::IO::FS::IFileStream> &stream,
AuUInt64 offset,
AuUInt length,
Aurora::IO::FS::EFileOpenMode mode,
Aurora::IO::FS::EFileAdvisoryLockLevel processLockLevel) = 0;
virtual AuSPtr<IProcessSectionMapView> MapIPCMemory(const AuString &handle,
AuUInt64 offset,
AuUInt length,
Aurora::IO::FS::EFileOpenMode mode) = 0;
};
AUKN_SYM AuSPtr<IProcessSectionView> GetGlobalProcessSpace();
//AUKN_SHARED_API(ReservedAddressSpace, IProcessSectionView, AuUInt); < Windows SUCKS
}