From bd86e6260eb69e7c06d366e73160dadef066569c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Tue, 15 Sep 2015 20:09:11 +0000 Subject: [PATCH] [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 --- reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/device.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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);