ntdll/kernel32: #6

Alexandre Julliard julliard at winehq.com
Thu Mar 13 23:08:43 CST 2003

Eric Pouech <eric.pouech at wanadoo.fr> writes:

> (Alexandre, in order to handle correctly the loader_critsect between
> ntdll & kernel32, what do you suggest ? NT does it thru the
> fastpeblock in the PEB, which we don't implement. shall we add to the
> PDB in some unused field (which means we do export the PDB struct out
> of scheduler/process.c, but you seemed to reluctant to do so so far)

Note that the PEB lock and the loader section are not the same
thing. The loader section corresponds to the LoaderLock field in the
PEB. I think we should use the same thing, and access it like we do
for the process heap, at least for now.

> +NTSTATUS WINAPI LdrFindEntryForAddress(const void* addr, PLDR_MODULE* mod)
> +{
> +    WINE_MODREF*        wm;
> +    NTSTATUS            nts = STATUS_NO_MORE_ENTRIES;
> +
> +    RtlEnterCriticalSection( &loader_section );
> +    if (!addr)
> +    {
> +        wm = exe_modref;
> +    }

This doesn't look right, address 0 is not inside the executable. Are
you sure NT does it this way?

Alexandre Julliard
julliard at winehq.com

More information about the wine-devel mailing list