/* * ResetDebugInterrupts32: * * This routine is called when someone is done using WINT32.DLL for * trapping 32-bit interrupts. We restore the IDT, and unregister * our interrupt callback */ void FAR PASCAL ResetDebugInterrupts32( void ) { SetCount--; if( SetCount == 0 ) { CopyMemory386( IDTSel, (DWORD) 1*8, GetDS(), (DWORD) &IdtInt1, 8 ); CopyMemory386( IDTSel, (DWORD) 3*8, GetDS(), (DWORD) &IdtInt3, 8 ); IDTFini(); ReleaseIDTSel(); UnRegisterInterruptCallback( (LPVOID) InterruptCallback ); } } /* ResetDebugInterrupts32 */
/* * WriteMem - write some memory, using toolhelp or wdebug.386 */ DWORD WriteMem( WORD sel, DWORD off, LPVOID buff, DWORD size ) { DWORD rc; if( WDebug386 ) { return( CopyMemory386( sel, off, FP_SEG( buff ), FP_OFF( buff ), size ) ); } else { PushAll(); rc = MemoryWrite( sel, off, buff, size ); PopAll(); return( rc ); } } /* WriteMem */