public static UIntPtr AllocateIOMemory(UIntPtr limit,
                                               UIntPtr bytes,
                                               UIntPtr alignment)
        {
            UIntPtr addr = MemoryManager.AllocateIOMemory(
                limit, bytes, alignment, Thread.CurrentProcess);

            Tracing.Log(Tracing.Debug,
                        "PageTableService.AllocateIOMemory(limit={0:x}, bytes={1:x}, alignment={2:x}) addr= {3:x8}",
                        limit, bytes, alignment, addr);

            return(addr);
        }
        public static uint AllocateIOMemory(uint limit,
                                            uint bytes,
                                            uint alignment)
        {
            uint addr = (uint)MemoryManager.AllocateIOMemory(
                limit, bytes, alignment, Thread.CurrentProcess);

            Tracing.Log(Tracing.Debug,
                        "PageTableService.AllocateIOMemory(limit={0:x}, bytes={1:x}, alignment={2:x}) addr= {3:x8}",
                        limit, bytes, alignment, addr);

            return(addr);
        }