Author: aandrejevic Date: Mon May 11 03:36:02 2015 New Revision: 67651
URL: http://svn.reactos.org/svn/reactos?rev=67651&view=rev Log: [NTVDM] Use the SDA for storing the request in DosCallDriver. Rename some more fields we aren't going to use to "Unused..." in the SDA.
Modified: trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/device.c trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/device.h trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/dos.h
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] Mon May 11 03:36:02 2015 @@ -47,23 +47,22 @@ static VOID DosCallDriver(DWORD Driver, PDOS_REQUEST_HEADER Request) { PDOS_DRIVER DriverBlock = (PDOS_DRIVER)FAR_POINTER(Driver); - PDOS_REQUEST_HEADER RemoteRequest = FAR_POINTER(REQUEST_LOCATION); WORD ES = getES(); WORD BX = getBX();
/* Set ES:BX to the location of the request */ - setES(HIWORD(REQUEST_LOCATION)); - setBX(LOWORD(REQUEST_LOCATION)); + setES(DOS_DATA_SEGMENT); + setBX(DOS_DATA_OFFSET(Sda.Request));
/* Copy the request structure to ES:BX */ - RtlMoveMemory(RemoteRequest, Request, Request->RequestLength); + 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);
/* Get the request structure from ES:BX */ - RtlMoveMemory(Request, RemoteRequest, Request->RequestLength); + RtlMoveMemory(Request, &Sda->Request, Request->RequestLength);
/* Restore ES:BX */ setES(ES);
Modified: trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/device.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/mvdm/ntvdm/dos/d... ============================================================================== --- trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/device.h [iso-8859-1] (original) +++ trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/device.h [iso-8859-1] Mon May 11 03:36:02 2015 @@ -12,7 +12,6 @@ /* DEFINITIONS ****************************************************************/
#define MAX_DEVICE_NAME 8 -#define REQUEST_LOCATION 0x00700100 // 0070:0100 #define DEVICE_CODE_SIZE 10 #define DEVICE_PRIVATE_AREA(Driver) (Driver + sizeof(DOS_DRIVER) + DEVICE_CODE_SIZE)
Modified: trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/dos.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/mvdm/ntvdm/dos/d... ============================================================================== --- trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/dos.h [iso-8859-1] (original) +++ trunk/reactos/subsystems/mvdm/ntvdm/dos/dos32krnl/dos.h [iso-8859-1] Mon May 11 03:36:02 2015 @@ -178,12 +178,9 @@ BYTE ConsoleSwappedFlag; BYTE Int28CallOk; BYTE Int24AbortFlag; - DOS_RW_REQUEST ReadWriteRequest; + DOS_RW_REQUEST Request; DWORD DriverEntryPoint; - DOS_IOCTL_RW_REQUEST IoctlRequest; - DOS_PEEK_REQUEST StatusRequest; - DWORD DeviceIoBuffer; - DWORD Unused2; + BYTE Unused2[44]; BYTE PspCopyType; BYTE Unused3; BYTE UserNumber[3];