From: Anders Fogh [afogh@flaffer.com] Sent: Friday, February 23, 2001 3:42 AM To: NT Developers Interest List Subject: [ntdev] Re: Calling Interrupt vector of the IDT from User-mode Hello Frederick, There is no reason why you cannot call an interupt from ring 3 the way you do. (NTdll.dll relies heavily on calling interupts 2e & 2d from usermode just like you do) However the interupt might be protected by having the DPL set to 0 which means you can only use it from ring 0. Under Windows 2000 only interupts 1,3,4 and 2a-2eh have DPL = 3. So unless you specifically change the DPL bits in the int 31h gate you'll get an exception trying to invoke the interupt. (If you do set the DPL=3 and then invoke the interupt you will be likely to crash system - the protection is there for a reason). regards, Anders Fogh Thursday, February 22, 2001, 2:28:26 PM, you wrote: FC> Hi , FC> I'm just trying to call an interrupt vector of the IDT from the Ring 3 with FC> the assembler command FC> _asm { int 0x31 } but I got a message box: " The instruction at FC> "0x00401d80" referenced memory FC> at 0xffffffff . The memory could not be read. FC> I don't know if it's possible to make that kind of call from the User-mode. FC> If it's possible what did I need to do to make it work properly? FC> I'm using Windows NT 2000 and I'm sure that the Interrupt vector is valid. FC> Do you have any hint that could help me???? FC> Thanks FC> Frederick Champoux FC> --- FC> You are currently subscribed to ntdev as: afogh@flaffer.com FC> To unsubscribe send a blank email to leave-ntdev-247T@lists.osr.com -- Best regards, Anders mailto:afogh@flaffer.com --- You are currently subscribed to ntdev as: GlennEverhart@FirstUSA.com To unsubscribe send a blank email to leave-ntdev-247T@lists.osr.com