From: Hermès Bélusca-Maïto Date: Tue, 15 Sep 2015 20:09:11 +0000 (+0000) Subject: [NTVDM] X-Git-Tag: ReactOS-0.4.0~801 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=bd86e6260eb69e7c06d366e73160dadef066569c [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 svn path=/trunk/; revision=69246 --- diff --git a/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/device.c b/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/device.c index 7f98cc3abcd..e1a83fb857b 100644 --- a/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/device.c +++ b/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/device.c @@ -58,8 +58,8 @@ static VOID DosCallDriver(DWORD Driver, PDOS_REQUEST_HEADER Request) 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);