Alexandre Julliard wrote: > What changed is that emulation of these instructions was deliberately > removed ;-) > > This was done for dll separation reasons, and because they are not > emulated under NT either (which also means better performance for the > exception handling). What happens if you run with Windows version set > to NT?
Performance is not an issue. Signal handlers can simply check version info and if platform ID is VER_PLATFORM_WIN32_WINDOWS, instruction emulation is required. Another possibility is to add instruction emulation hooks to NTDLL and make KERNEL set these hooks only for some platform IDs. Actually Windows XP/2003 already does provide this kind of hooks (see AddVectoredExceptionHandler), although they are called after first chance notification which may be a bit awkward (and kernel handler should have higher priority than these have). Anyway, even with some performance issues, it looks like instruction emulation is needed for supporting some pure Win95/98/ME programs. It would seem a bit strange we try very hard to support Win31 and WinNT based programs but not those. -- Jukka Heinonen <http://www.iki.fi/jhei/>