I would like to know what happens when you run a dos app under win32, more precisely , if its a .com, i think it runs in v86 mode, if its a normal mz, too(?) (but can a mz have 32b codesegs and if yes how does it work), if its a dpmi mz, I dont know??? It would run in 32b-protmode like any other task?

can a dos .com (or a normal mz, that is , that doesnt switch to pm via dpmi) still make dpmi calls (calls like allocmem, lockmem, maplineartophysical...)

I was wondering if this could be a method of accessing any physical addr uner win: make a dpmi prog, alloc mem, map to physical, and read/write?
I still have the feeling that the dos emu layer under win could be a source of a security leak... (but prolly I m wrong).
And maybe if you know how to go ring0 then this is useless... btw is there still a way to go ring0 under winxp?

will maptophysical fail?(though it works for example with dpmi progs accessing videomem lfb at physical over 3Gb or so...) ... will the read/write generate an exception?

Enlighten me please... some parts of what I said maybe make no sense when you understand it all, but hey, I wouldnt post if I understood it all...:)
Posted on 2003-11-21 11:25:20 by HeLLoWorld
Once I needed to make a VxD for a sega joystick. I use Win98SE. From my experience I learnt that dos programs get emulated at places - on interrupts. As long as the proggie doesn't call some critical interrupt, it's all ok, but if it wants absolute power, that the VxD can't emulate, then maybe Win shows that message prompt to ask you if you want to reboot in dos mode.
The DDK read that when a dos app gets started, a new virtual machine gets allocated and initialized. But I don't know if memory allocation is above 1MB. I remember a game for dos, that had cool graphics, demanded it needs to start in pure dos, with that msg prompt. Maybe it wanted more than 1MB. Or maybe if the app accesses higher memory, it is given virtual memory from the swapfile. Anyway, it's cool how vxds trick programs they are in control, while doing everything on their own :)
I don't know what's the situation with WinNT,2k, 'n XP. Their DDKs can give all info you need :)
Posted on 2003-11-21 15:21:54 by Ultrano
DPMI is supported, but I don't know if that particular service will work under XP. Have you tried?
Posted on 2003-11-23 12:56:10 by Sephiroth3
What you want (at least on NT/2000/XP) can be done using a VDD. You can't install a VDD unless you already have admin rights. They act like filters or "plugins" to the VDM (the DOS emulator layer). A VDD is just a normal DLL file... that's as much as i'm allowed to say ;] Its all documented in the DDK.
Posted on 2003-12-03 21:41:15 by panoramix