mirror of
https://github.com/reactos/reactos.git
synced 2024-10-22 13:56:16 +00:00
[NTVDM]
Fix several bugs. svn path=/branches/ntvdm/; revision=59502
This commit is contained in:
parent
495320af6e
commit
bac747f151
|
@ -398,7 +398,7 @@ BOOLEAN DosFreeMemory(WORD BlockData)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
BOOLEAN DosLinkUmb()
|
||||
BOOLEAN DosLinkUmb(VOID)
|
||||
{
|
||||
DWORD Segment = FIRST_MCB_SEGMENT;
|
||||
PDOS_MCB Mcb = SEGMENT_TO_MCB(Segment);
|
||||
|
@ -423,7 +423,7 @@ BOOLEAN DosLinkUmb()
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
BOOLEAN DosUnlinkUmb()
|
||||
BOOLEAN DosUnlinkUmb(VOID)
|
||||
{
|
||||
DWORD Segment = FIRST_MCB_SEGMENT;
|
||||
PDOS_MCB Mcb = SEGMENT_TO_MCB(Segment);
|
||||
|
@ -895,6 +895,7 @@ Cleanup:
|
|||
|
||||
VOID DosTerminateProcess(WORD Psp, BYTE ReturnCode)
|
||||
{
|
||||
WORD i;
|
||||
WORD McbSegment = FIRST_MCB_SEGMENT;
|
||||
PDOS_MCB CurrentMcb;
|
||||
LPDWORD IntVecTable = (LPDWORD)((ULONG_PTR)BaseAddress);
|
||||
|
@ -903,7 +904,11 @@ VOID DosTerminateProcess(WORD Psp, BYTE ReturnCode)
|
|||
/* Check if this PSP is it's own parent */
|
||||
if (PspBlock->ParentPsp == Psp) goto Done;
|
||||
|
||||
// TODO: Close all handles opened by the process
|
||||
for (i = 0; i < PspBlock->HandleTableSize; i++)
|
||||
{
|
||||
/* Close the handle */
|
||||
DosCloseHandle(i);
|
||||
}
|
||||
|
||||
/* Free the memory used by the process */
|
||||
while (TRUE)
|
||||
|
@ -942,7 +947,7 @@ Done:
|
|||
LOWORD(PspBlock->TerminateAddress));
|
||||
}
|
||||
|
||||
CHAR DosReadCharacter()
|
||||
CHAR DosReadCharacter(VOID)
|
||||
{
|
||||
CHAR Character = '\0';
|
||||
WORD BytesRead;
|
||||
|
@ -1539,12 +1544,12 @@ VOID DosInt21h(WORD CodeSegment)
|
|||
}
|
||||
}
|
||||
|
||||
VOID DosBreakInterrupt()
|
||||
VOID DosBreakInterrupt(VOID)
|
||||
{
|
||||
VdmRunning = FALSE;
|
||||
}
|
||||
|
||||
BOOLEAN DosInitialize()
|
||||
BOOLEAN DosInitialize(VOID)
|
||||
{
|
||||
BYTE i;
|
||||
PDOS_MCB Mcb = SEGMENT_TO_MCB(FIRST_MCB_SEGMENT);
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
#define DOS_CONFIG_PATH L"%SystemRoot%\\system32\\CONFIG.NT"
|
||||
#define DOS_COMMAND_INTERPRETER L"%SystemRoot%\\system32\\COMMAND.COM /k %SystemRoot%\\system32\\AUTOEXEC.NT"
|
||||
#define FIRST_MCB_SEGMENT 0x1000
|
||||
#define USER_MEMORY_SIZE 0x8FFF
|
||||
#define USER_MEMORY_SIZE 0x8FFE
|
||||
#define SYSTEM_PSP 0x08
|
||||
#define SYSTEM_ENV_BLOCK 0x800
|
||||
#define INVALID_DOS_HANDLE 0xFFFF
|
||||
|
@ -103,12 +103,12 @@ WORD DosWriteFile(WORD FileHandle, LPVOID Buffer, WORD Count, LPWORD BytesWritte
|
|||
VOID DosInitializePsp(WORD PspSegment, LPCSTR CommandLine, WORD ProgramSize, WORD Environment);
|
||||
BOOLEAN DosCreateProcess(LPCSTR CommandLine, WORD EnvBlock);
|
||||
VOID DosTerminateProcess(WORD Psp, BYTE ReturnCode);
|
||||
CHAR DosReadCharacter();
|
||||
CHAR DosReadCharacter(VOID);
|
||||
VOID DosPrintCharacter(CHAR Character);
|
||||
VOID DosInt20h(WORD CodeSegment);
|
||||
VOID DosInt21h(WORD CodeSegment);
|
||||
VOID DosBreakInterrupt();
|
||||
BOOLEAN DosInitialize();
|
||||
VOID DosBreakInterrupt(VOID);
|
||||
BOOLEAN DosInitialize(VOID);
|
||||
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Reference in a new issue