PATCH: clean vm86 flag in VWin_INT21
Marcus Meissner
marcus at jet.franken.de
Mon Dec 15 01:17:27 CST 2003
Hi,
Calling int21 via DeviceIoctl is definitely not VM86 mode. However one
application had this bit set for some reason, confusing the int21 handler.
Ciao, Marcus
Changelog:
Explicitly clear vm86 flag in DIOCRegs_2_CONTEXT.
Index: dlls/kernel/device.c
===================================================================
RCS file: /home/wine/wine/dlls/kernel/device.c,v
retrieving revision 1.5
diff -u -r1.5 device.c
--- dlls/kernel/device.c 4 Dec 2003 21:05:13 -0000 1.5
+++ dlls/kernel/device.c 15 Dec 2003 07:15:36 -0000
@@ -287,6 +287,7 @@
FIXME( "Unknown/unsupported VxD %s. Try setting Windows version to 'nt40' or 'win31'.\n",
filename);
+
SetLastError( ERROR_FILE_NOT_FOUND );
return 0;
}
@@ -609,7 +610,8 @@
pCxt->Edi = pIn->reg_EDI;
/* FIXME: Only partial CONTEXT86_CONTROL */
- pCxt->EFlags = pIn->reg_Flags;
+
+ pCxt->EFlags = pIn->reg_Flags & ~0x00020000; /* clear vm86 mode */
}
static void CONTEXT_2_DIOCRegs( CONTEXT86 *pCxt, DIOC_REGISTERS *pOut )
--
More information about the wine-patches
mailing list