On Sat, Jan 20, 2001 at 05:27:10PM +0100, gerard patel wrote:
[...]

> I did not include the  trace as it's rather large (I can mail it to you
> if you want...) but what happens is clear enough : the main exe loads
> implicitely KERNEL32 but not USER  - USER is loaded implicitely 
> by a DLL loaded by LoadLibrary.
> So when the kernel initialisation is done, USER is not yet loaded. 
> It's unusual but seems perfectly valid IMO.
> 
> What about adding a specific Wine call from User to Kernel to trigger the 
> initialization when USER is loaded ? (maybe there is already an
> undocumented one - you are the undisputed master here :-))
Hmm.

What about abusing EnableKernel() for that ?

This function reverts the effect of DisableKernel() in 3.0
(which just calls DisableDOS(), which disables DOS calls),
and does *nothing* in 3.1.
And Wine assigns it to KERNEL_nop.

So it seems we could indeed abuse this function and check via a boolean
whether Callouts have been initialized already (to protect against "real"
EnableKernel() calls by <= 3.0 applications).

Just an idea... (you might not like it, though ;-)

Andreas Mohr

Reply via email to