Barubary wrote:
This is not 100% correct. The lowest 64k of the process _virtual_ address space is is reserved and protected in order to detect NULL pointer access.
Do you know how NTVDM in NT/2000/XP/2003 gets around this? NTVDM allocates this area somehow for creation of the V86 IDT.
Melissa _______________________________________________ Ros-dev mailing list Ros-dev@reactos.com http://reactos.com:8080/mailman/listinfo/ros-dev
Are you sure about that?
In any case, NTVDM is a completely separate subsystem that actually "Boots up" with its own ROM/BIOS and has its own memory handlers, ivt, idt, gdt, ldt, etc. It emulates everything it can, but sometimes it can't and it raises exceptions (which is why many DOS apps won't work). So, by being an emulator, it has full control over its internal virtual memory. However, I'm still not convinced that the actual ntvdm.exe process allocates, in Windows, the first 0x10000 bytes.
Best regards, Alex Ionescu