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
This commit is contained in:
Hermès Bélusca-Maïto 2015-09-15 20:09:11 +00:00
parent 080c3d0357
commit bd86e6260e

View file

@ -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);