[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