You are right, NT does restrict the in and out opcodes. Win9x does not restrict those opcodes. In NT you need ring0 access to use them. Windows does give some API functions to access the ports, NT more than 9x. They are fairly comprehensive for COM ports, but lacking for parrallel ports. The API functions for the most part just let you use the ports as they were intended to be used (no turning on individual io lines in the parallel port). Generally in NT people write a driver, since they run in ring0, and they have their program access the port through the driver. I have seen a few available, but I don't have any links. I have also found a webpage that says how to get ring0 access in NT without a driver, http://www.sonic.net/~undoc/ntcallgate.html. It says it works through a security hole in NT. I have not tested it since I have win98. I found another site that says how to do it in win9x http://asmjournal.freeservers.com/issues/apj_1.txt, but I have not tested it either. Incase you haven't figured it out yet I've been trying to figure out how to switch to ring0 for a long time. I've read that some virii like Padania get into ring0 by patching the PE sections of exe so it loads up into VMM ring0. Does anyone know what address that is? If anyone has anymore information I'd love to hear about it. I'm interested in it because I want to get physical sector access to hard drives over 8gb (int 13 doesn't work). I'm not quite sure how to do that once I get to ring0 either. > Edgard Oporto wrote: > receive and to send data respectively). It appears a message > indicating that I cannot use those instructions by lack of > privileges. [Image] > This is comprehensible since I am working under Windows NT > WS in which the access to the ports this simply restricted > for the user programs. The question is: that I must make to > jump the privileges. -- http://www.piclist.com hint: The PICList is archived three different ways. See http://www.piclist.com/#archives for details.