Known DLLS (Was: Mo Dejong's install problems)

Fri Mar 31 15:38:00 GMT 2000

On Fri, 31 Mar 2000, Parker, Ron wrote:

> > -----Original Message-----
> > From: Mumit Khan [ mailto:khan@NanoTech.Wisc.EDU ]
> <snip>
> > A long time ago, I added Cygwin dll to the "Known DLLs" list, 
> > but I don't
> > remember if I saw any significant improvements. 
> <snip>
> FWIW, Microsoft added a new "feature" to "Known DLLs" with Windows 2000. If
> a file is listed as a "Known DLL" nothing may replace it short of an
> operating system service pack. If you try replacing it, success will be
> reported but nothing will be changed. Microsoft will re-replace it with a
> cached copy that you cannot modify. IMO, this was done to prevent something
> like Windows 2000-lite, once and forever proving that IE is a necessary part
> of the OS. I also love having two copies of 2000+ files on my machine.

KnownDLLs was actually also in NT 4.0. It basically preloads common
shared DLLs so that when processes start up that use them, they will use
the ones already mapped into memory. Because they are prelaoded, startup
times are reduced. You can look at the KnownDLLs list in the Object
Manager namespace using .

What you are referring to in Win2k is "system File Protection". What it
does it prevents non-signed DLLs from overwriting known good DLLs in
specified protected directories, and prevents what some people have
referred to as "DLL Hell". This happens when a
retarded app (like Netscape) installs the MFC42.DLL redistributable from
VC++ 4.2 over your good, y2k compliant, stable one from Service Pack 6.
You can, in fact, configure win2k to not care and to accept such
behaviour. This is a very good thing. I would suggest reading up on it on before passing any more judgement.

What KnownDLLs means to cygwin is that if the cygwin DLL is replaced, it
will not be remapped into memory until the next reboot. Whether this
disadvantage outweighs the advantage of faster startup times is

More information about the Cygwin-developers mailing list