Author: hbelusca Date: Tue Sep 15 20:09:11 2015 New Revision: 69246
URL: http://svn.reactos.org/svn/reactos?rev=69246&view=rev Log: [NTVDM] Correctly call the device strategy/interrupt routines. Should fix a bunch of weird errors. This also fixes the NTVDM crash when Command&Conquer terminates, however it doesn't fix the DOS/4GW exception it encounters. CORE-9678
Modified: trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/device.c
Modified: trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/device.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/mvdm/ntvdm/dos/d... ============================================================================== --- trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/device.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/device.c [iso-8859-1] Tue Sep 15 20:09:11 2015 @@ -58,8 +58,8 @@ RtlMoveMemory(&Sda->Request, Request, Request->RequestLength);
/* Call the strategy routine, and then the interrupt routine */ - Call16(HIWORD(Driver), DriverBlock->StrategyRoutine); - Call16(HIWORD(Driver), DriverBlock->InterruptRoutine); + RunCallback16(&DosContext, MAKELONG(DriverBlock->StrategyRoutine , HIWORD(Driver))); + RunCallback16(&DosContext, MAKELONG(DriverBlock->InterruptRoutine, HIWORD(Driver)));
/* Get the request structure from ES:BX */ RtlMoveMemory(Request, &Sda->Request, Request->RequestLength);