flat assembler
Message board for the users of flat assembler.
![]() |
Author |
|
roticv 09 Mar 2004, 12:44
Best to use them only in ring0 for win nt and winxp.
|
|||
![]() |
|
vid 09 Mar 2004, 19:17
roticv is right.
Generally, every ring3 task has bit array that defines which ports it can access and which not. But i don't know how to get this list under windoze, but i think all ports are disallowed. |
|||
![]() |
|
MazeGen 09 Mar 2004, 20:30
I/O instructions, like STI and CLI instructions, are "trusted", what means you can use them only if CPL<=IOPL. In fact, this condition is not true on most win systems, surely not on higher than 9x.
As vid said, there is additionally the bit array that defines which ports are not illegal when not CPL<=IOPL. Unfortunatelly, that array is located in TSS (task state segment) and is not accesible in ring3 at all. |
|||
![]() |
|
Endre 12 Mar 2004, 11:37
If you use cygwin (a unix environment for win32) you may have to take a look at the link below, since they have developed a driver (named ioperm.sys) for supporting the well known ioperm() and iopl() functions, which you can change the privilege levels with.
http://openwince.sourceforge.net/ioperm/ Üdv. Endre |
|||
![]() |
|
VitalOne 12 Mar 2004, 23:29
Isn't it possible making a VXD file?
|
|||
![]() |
|
roticv 13 Mar 2004, 02:15
vxd works only on 9x, while .sys works on nt..
|
|||
![]() |
|
Endre 13 Mar 2004, 10:17
As I see you have the following opportunities:
1. Use of microsoft DDK (I guess this is the best if you want own DMA operations too) 2. Use of any hack-driver (like the mentioned ioperm.sys for cygwin). In this case you may still have to care about your virual address problem, since you can't see physical address from user-space, however devices need it for instance for DMA as well as for memory mapped IO (MMIO). 3. Change to any of the open-source unix systems. There you can use ioperm and iopl (they are sytem calls consequently interrupts) as root. Although the virtual/physical address problem is still standing, so you will be compelled to hack your kernel (for linux it is not so complicated.) 4. Use of DOS with any 32bit extender or you can write a little code to switch to 32bit flat-mode. Did I give a miss something? Üdv. Endre |
|||
![]() |
|
HarryTuttle 16 Mar 2004, 13:53
_________________ Microsoft: brings power of yesterday to computers of today. |
|||
![]() |
|
Endre 17 Mar 2004, 14:44
Thanks, it seems to solve each above mentioned problem.
|
|||
![]() |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2023, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.