[ros-dev] 2GB Boundary
Alex Ionescu
ionucu at videotron.ca
Sun Oct 10 23:19:56 CEST 2004
NTVDM is not only an application, but also a subsystem. Many parts of
the NT Kernel themselves are dedicated to supporting certain NTVDM
operations.
Best regards,
Alex Ionescu
Barubary wrote:
>> 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.
>
>
> NTVDM is a user-mode application. You can put a thread into V86 mode
> in your own process using NtSetContextThread()'s EFLAGS value (V86
> isn't masked). NTVDM seems almost identical to a standard Win32
> application except for the slightly different exception handling
> methods. The "VDD" documentation in the DDK kinda shows how this
> mechanism works, letting you load a DLL into NTVDM's process space.
>
> Melissa
> _______________________________________________
> Ros-dev mailing list
> Ros-dev at reactos.com
> http://reactos.com:8080/mailman/listinfo/ros-dev
>
More information about the Ros-dev
mailing list