private bool CanAddGuardRegionsInProcess(KProcess process, ulong baseAddress, ulong size) { KPageTableBase memMgr = process.MemoryManager; KMemoryInfo memInfo = memMgr.QueryMemory(baseAddress - 1); if (memInfo.State == MemoryState.Unmapped && baseAddress - GuardPagesSize >= memInfo.Address) { memInfo = memMgr.QueryMemory(baseAddress + size); if (memInfo.State == MemoryState.Unmapped) { return(baseAddress + size + GuardPagesSize <= memInfo.Address + memInfo.Size); } } return(false); }