mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 18:15:11 +00:00
[BASESRV]
Don't update the state of the old DOS records if the DOS program executed another program. svn path=/branches/ntvdm/; revision=63039
This commit is contained in:
parent
3031b351e8
commit
dd049f9da3
1 changed files with 11 additions and 9 deletions
|
@ -850,18 +850,20 @@ CSR_API(BaseSrvGetNextVDMCommand)
|
|||
GetNextVdmCommandRequest->iTask = ConsoleRecord->SessionId;
|
||||
GetNextVdmCommandRequest->WaitObjectForVDM = NULL;
|
||||
|
||||
// HACK: I'm not sure if this should happen...
|
||||
for (i = ConsoleRecord->DosListHead.Flink; i != &ConsoleRecord->DosListHead; i = i->Flink)
|
||||
if (!(GetNextVdmCommandRequest->VDMState & VDM_NOT_READY))
|
||||
{
|
||||
DosRecord = CONTAINING_RECORD(i, VDM_DOS_RECORD, Entry);
|
||||
if (DosRecord->State == VDM_NOT_READY)
|
||||
for (i = ConsoleRecord->DosListHead.Flink; i != &ConsoleRecord->DosListHead; i = i->Flink)
|
||||
{
|
||||
/* If NTVDM is asking for a new command, it means these are done */
|
||||
DosRecord->State = VDM_READY;
|
||||
DosRecord = CONTAINING_RECORD(i, VDM_DOS_RECORD, Entry);
|
||||
if (DosRecord->State == VDM_NOT_READY)
|
||||
{
|
||||
/* If NTVDM is asking for a new command, it means these are done */
|
||||
DosRecord->State = VDM_READY;
|
||||
|
||||
NtSetEvent(DosRecord->ServerEvent, NULL);
|
||||
NtClose(DosRecord->ServerEvent);
|
||||
DosRecord->ServerEvent = NULL;
|
||||
NtSetEvent(DosRecord->ServerEvent, NULL);
|
||||
NtClose(DosRecord->ServerEvent);
|
||||
DosRecord->ServerEvent = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue