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