On 27 Jul 2005 16:37:18 +0200, you wrote:
Rein Klazes wijn@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.