OS/2, eCS & ArcaOS - Technical > Programming

Presentation Manager - About PM DLL's

<< < (2/3) > >>

Lars:
Plain Forwarder DLLs contain no code but just references to other DLLs which actually implement the function. The loader that loads the executable that in turn loads the forwarder DLL will replace the entry points in the executable not by the entry point of the forwarder DLL but rather by the entry point of the DLL the forwarder DLL refers to (after all that is the purpose of a forwarder DLL).

Why ?  Well maybe because the designers of PM decided to stuff everything into a single DLL "PMMERGE.DLL". But at that point in time there where multiple applications around that referred to file "PMWIN.DLL" (and others like "PMDRAG.DLL" for example) instead. In order to ensure that those applications would continue to work, "PMWIN.DLL" was made a forwarder DLL.
By the way: libc also follows this concept, libc*.dll are all forwarder DLLs except for the latest version that you have installed. You can tell by the file size: the latest version of libc*.dll is about 1.3 MBytes in size while the others are only 150 kByte or less in size. At least they started doing this with version libc06.dll.

Martin Iturbide:
Thanks for the reply Lars.

Just one some questions, how do I recognize that a DLL is only a plain forwarder?

Do you know of any forwarder on OS/2 that has something inside (that is not plain) ? like half forwarder and half "implemented functions" on it? Do something like that exist right now on OS/2?

Regards

Alex Taylor:

--- Quote from: Martin Iturbide on March 08, 2015, 10:48:19 pm ---Just one some questions, how do I recognize that a DLL is only a plain forwarder?

--- End quote ---

You could check with lxlite or exehdr etc. to see if all of the entrypoints are forwarded. Although I'm not certain that covers all possibilities...


--- Quote ---Do you know of any forwarder on OS/2 that has something inside (that is not plain) ? like half forwarder and half "implemented functions" on it? Do something like that exist right now on OS/2?

--- End quote ---

Yes, certainly.  The replacement LVM.DLL in eCS, for example.

Martin Iturbide:
Thanks for the reply.

I want to try to document the OS/2 DLL's (and other files) by it's components (like PM, SOM, WPS, Control Program) on EDM/2.
Let's if it can be improved, for the moment is this page: http://www.edm2.com/index.php/OS/2_DLL_Entry_Points

Regards

Martin Iturbide:
Hi

I made an experiment with my experimental eCS 2.1 VM to see if the systems keeps working fine after replacing some DLL that are forwardes by other generated by OSFree project some years ago.

Here are the files that that OSFree has compiled in the past, and that I used to replace the old ones.


--- Quote ---9-17-11  6:13a           463      0 a---  ansicall.dll
9-17-11  6:13a           412      0 a---  bkscalls.dll
9-17-11  6:13a           409      0 a---  bmscalls.dll
9-17-11  6:13a           465      0 a---  bvscalls.dll
1-25-12  4:57p           904      0 a---  kbdcalls.dll
9-17-11  5:13a           693      0 a---  moncalls.dll
1-25-12  4:58p         1,040      0 a---  moucalls.dll
2-02-12 10:26a           627      0 a---  msg.dll
9-17-11  6:13a           754      0 a---  nampipes.dll
2-02-12 10:27a           589      0 a---  nls.dll
9-17-11  6:13a           689      0 a---  os2char.dll
9-17-11  6:15a         2,412      0 a---  pmdrag.dll
9-17-11  6:15a         2,216      0 a---  pmgre.dll
9-17-11  6:15a           479      0 a---  pmmle.dll
9-17-11  6:15a         4,511      0 a---  pmshapi.dll
2-02-12  2:16p        19,713      0 a---  pmwin.dll
2-02-12  3:21p           761      0 a---  quecalls.dll
1-25-12  4:59p         2,040      0 a---  viocalls.dll

--- End quote ---

I renamed the original OS/2 files and change them for this one generated by OSFree and the system boots and run withouts any issue. I still haven't found any visible problem.

I was not able to replace "sesmgr.dll" since it is still loaded on memory even if I boot on "ALT F1" command prompt mode.
And I'm not sure what "startlw.dll" is for. I was not able to find it on my system.

So, I think this files I replaced are forwarders only and can easily be replaced just like OSFree project showed me. 

Does anybody can point some issue or warning about replacing this files?

Regards

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version