public KernelResult MapIntoProcess( KMemoryManager MemoryManager, ulong Address, ulong Size, KProcess Process, MemoryPermission Permission) { ulong PagesCountRounded = BitUtils.DivRoundUp(Size, KMemoryManager.PageSize); if (PageList.GetPagesCount() != PagesCountRounded) { return(KernelResult.InvalidSize); } MemoryPermission ExpectedPermission = Process.Pid == OwnerPid ? OwnerPermission : UserPermission; if (Permission != ExpectedPermission) { return(KernelResult.InvalidPermission); } return(MemoryManager.MapPages(Address, PageList, MemoryState.SharedMemory, Permission)); }
public KernelResult MapIntoProcess( KMemoryManager memoryManager, ulong address, ulong size, KProcess process, MemoryPermission permission) { ulong pagesCountRounded = BitUtils.DivRoundUp(size, KMemoryManager.PageSize); if (_pageList.GetPagesCount() != pagesCountRounded) { return(KernelResult.InvalidSize); } MemoryPermission expectedPermission = process.Pid == _ownerPid ? _ownerPermission : _userPermission; if (permission != expectedPermission) { return(KernelResult.InvalidPermission); } return(memoryManager.MapPages(address, _pageList, MemoryState.SharedMemory, permission)); }