internal static void FreeIOMemory(UIntPtr addr, UIntPtr size, Process process)
 {
     if (useAddressTranslation)
     {
         KernelIOMemoryHeap.Free(addr, size, process);
     }
     else
     {
         FlatPages.Free(addr, size, process);
     }
 }
 internal static void UserFree(UIntPtr addr, UIntPtr numPages, Process process)
 {
     if (useAddressTranslation)
     {
         ProtectionDomain.CurrentDomain.UserRange.Free(addr, numPages, process);
     }
     else
     {
         FlatPages.Free(addr, BytesFromPages(numPages), process);
     }
 }
 internal static void KernelFree(UIntPtr startAddr, UIntPtr numPages, Process process)
 {
     if (useAddressTranslation)
     {
         KernelRange.Free(startAddr, numPages, process);
     }
     else
     {
         FlatPages.Free(startAddr, MemoryManager.BytesFromPages(numPages), process);
     }
 }