wine/dlls/ntdll loadorder.c

Rein Klazes wijn at wanadoo.nl
Wed Jul 27 14:42:55 CDT 2005


On 27 Jul 2005 16:37:18 +0200, you wrote:

> Rein Klazes <wijn at wanadoo.nl> writes:
> 
> > Girotel uses a 32 bit comm.dll located in the programs directory, which
> > is also the current directory. After this change I need to add an dll
> > override to load the program's comm.dll and not attempt the built-in
> > comm.drv, which of course is not needed in Windows.
> > 
> > Is this a regression or an intentional change in behavior? 
> 
> Since comm.drv is 16-bit and doesn't even have the same name, this
> shouldn't be an issue at all. Could you please send me some traces
> showing the problem?


This is +relay,+module trace with a recent (few days old) cvs and no
specific dll overrides:

| 0009:Call kernel32.LoadLibraryA(7ff08e08 "comm.dll") ret=6c4008c2
| 0009:Call ntdll.RtlInitAnsiString(7ba5f378,7ff08e08 "comm.dll") ret=7bb0deff
| 0009:Ret  ntdll.RtlInitAnsiString() retval=00000009 ret=7bb0deff
| 0009:Call ntdll.RtlAnsiStringToUnicodeString(7be68bf8,7ba5f378,00000000) ret=7bb0df98
| 0009:Ret  ntdll.RtlAnsiStringToUnicodeString() retval=00000000 ret=7bb0df98
| 0009:Call ntdll.RtlInitUnicodeString(7ba5f37c,7be68c00 L"comm.dll") ret=7bb2a8ed
| 0009:Ret  ntdll.RtlInitUnicodeString() retval=00000012 ret=7bb2a8ed
| 0009:Call ntdll.RtlInitUnicodeString(7ba5f32c,7bb6fcc8 L"PATH") ret=7bb2a3ff
| 0009:Ret  ntdll.RtlInitUnicodeString() retval=0000000a ret=7bb2a3ff
| 0009:Call ntdll.RtlQueryEnvironmentVariable_U(00000000,7ba5f32c,7ba5f324) ret=7bb2a433
| 0009:Ret  ntdll.RtlQueryEnvironmentVariable_U() retval=c0000023 ret=7bb2a433
| 0009:Call ntdll.RtlAllocateHeap(7bbd0000,00000000,000000c0) ret=7bb171ad
| 0009:Ret  ntdll.RtlAllocateHeap() retval=7bca3d90 ret=7bb171ad
| 0009:Call ntdll.RtlQueryEnvironmentVariable_U(00000000,7ba5f32c,7ba5f324) ret=7bb2a51a
| 0009:Ret  ntdll.RtlQueryEnvironmentVariable_U() retval=00000000 ret=7bb2a51a
| 0009:Call ntdll.LdrLoadDll(7bca3d90 L"E:\\bin\\gt3\\GTWin;.;d:\\win98\\system;d:\\WIN98;d:\\windows;d:\\windows\\system;h:\\shared;r:\\x86\\Setup",00000000,7ba5f37c,7ba5f35c) ret=7bb2a7fd
| trace:module:load_dll looking for L"comm.dll" in L"E:\\bin\\gt3\\GTWin;.;d:\\win98\\system;d:\\WIN98;d:\\windows;d:\\windows\\system;h:\\shared;r:\\x86\\Setup"
| trace:module:MODULE_GetLoadOrderW looking for L"E:\\bin\\gt3\\GTWin\\comm.dll"
| trace:module:open_app_key searching L"E:\\bin\\gt3\\GTWin\\comm" in L"Software\\Wine\\AppDefaults\\girotel.exe\\DllOverrides"
| trace:module:MODULE_GetLoadOrderW got hardcoded default "b,n" for L"E:\\bin\\gt3\\GTWin\\comm.dll"
| trace:module:load_dll Trying built-in L"E:\\bin\\gt3\\GTWin\\comm.dll"
| warn:module:load_dll Failed to load module L"comm.dll"; status=c000007b
| 0009:Ret  ntdll.LdrLoadDll() retval=c000007b ret=7bb2a7fd
| 0009:Call ntdll.RtlFreeHeap(7bbd0000,00000000,7bca3d90) ret=7bb171ed
| 0009:Ret  ntdll.RtlFreeHeap() retval=00000001 ret=7bb171ed
| 0009:Call ntdll.RtlNtStatusToDosError(c000007b) ret=7bb2a83f
| 0009:Ret  ntdll.RtlNtStatusToDosError() retval=000000c1 ret=7bb2a83f
| 0009:Ret  kernel32.LoadLibraryA() retval=00000000 ret=6c4008c2

Same trace, just with that patch reversed:

| 0009:Call kernel32.LoadLibraryA(7ff08e08 "comm.dll") ret=6c4008c2
| 0009:Call ntdll.RtlInitAnsiString(7ba5f378,7ff08e08 "comm.dll") ret=7bb0deff
| 0009:Ret  ntdll.RtlInitAnsiString() retval=00000009 ret=7bb0deff
| 0009:Call ntdll.RtlAnsiStringToUnicodeString(7be68bf8,7ba5f378,00000000) ret=7bb0df98
| 0009:Ret  ntdll.RtlAnsiStringToUnicodeString() retval=00000000 ret=7bb0df98
| 0009:Call ntdll.RtlInitUnicodeString(7ba5f37c,7be68c00 L"comm.dll") ret=7bb2a8ed
| 0009:Ret  ntdll.RtlInitUnicodeString() retval=00000012 ret=7bb2a8ed
| 0009:Call ntdll.RtlInitUnicodeString(7ba5f32c,7bb6fcc8 L"PATH") ret=7bb2a3ff
| 0009:Ret  ntdll.RtlInitUnicodeString() retval=0000000a ret=7bb2a3ff
| 0009:Call ntdll.RtlQueryEnvironmentVariable_U(00000000,7ba5f32c,7ba5f324) ret=7bb2a433
| 0009:Ret  ntdll.RtlQueryEnvironmentVariable_U() retval=c0000023 ret=7bb2a433
| 0009:Call ntdll.RtlAllocateHeap(7bbd0000,00000000,000000c0) ret=7bb171ad
| 0009:Ret  ntdll.RtlAllocateHeap() retval=7bca7628 ret=7bb171ad
| 0009:Call ntdll.RtlQueryEnvironmentVariable_U(00000000,7ba5f32c,7ba5f324) ret=7bb2a51a
| 0009:Ret  ntdll.RtlQueryEnvironmentVariable_U() retval=00000000 ret=7bb2a51a
| 0009:Call ntdll.LdrLoadDll(7bca7628 L"E:\\bin\\gt3\\GTWin;.;d:\\win98\\system;d:\\WIN98;d:\\windows;d:\\windows\\system;h:\\shared;r:\\x86\\Setup",00000000,7ba5f37c,7ba5f35c) ret=7bb2a7fd
| trace:module:load_dll looking for L"comm.dll" in L"E:\\bin\\gt3\\GTWin;.;d:\\win98\\system;d:\\WIN98;d:\\windows;d:\\windows\\system;h:\\shared;r:\\x86\\Setup"
| trace:module:MODULE_GetLoadOrderW looking for L"E:\\bin\\gt3\\GTWin\\comm.dll"
| trace:module:open_app_key searching L"E:\\bin\\gt3\\GTWin\\comm" in L"Software\\Wine\\AppDefaults\\girotel.exe\\DllOverrides"
| trace:module:MODULE_GetLoadOrderW got hardcoded path default "n,b" for L"E:\\bin\\gt3\\GTWin\\comm.dll"
| trace:module:load_dll Trying native dll L"E:\\bin\\gt3\\GTWin\\comm.dll"
| trace:module:load_native_dll loading L"E:\\bin\\gt3\\GTWin\\comm.dll"

<snip>

| 0009:Ret  PE DLL (proc=0x6006ae68,module=0x60040000 L"comm.dll",reason=PROCESS_ATTACH,res=(nil)) retval=1
| trace:module:process_attach (L"comm.dll",(nil)) - END
| 0009:Ret  ntdll.LdrLoadDll() retval=00000000 ret=7bb2a7fd
| 0009:Call ntdll.RtlFreeHeap(7bbd0000,00000000,7bca7628) ret=7bb171ed
| 0009:Ret  ntdll.RtlFreeHeap() retval=00000001 ret=7bb171ed
| 0009:Ret  kernel32.LoadLibraryA() retval=60040000 ret=6c4008c2

Rein.



More information about the wine-devel mailing list