Unload unused dll's from memory

M

Mike Andrade

x-setup is now x-setup pro and it is no longer freeware.
Lou
From the EULA of the latest version:

"The software is "freeware" for: Home users (using the computers for
personal hobby or recreational use); Government controlled education
institutions; Non-profit organizations; charity organizations; Public
libraries. The term "freeware" means, you are allowed to use the
software at no cost. It is not necessary to purchase a license for it."

Now say you're sorry for villifying my good name.
 
O

omega

derek / nul said:
Is there any utilities to unload unused dll's from memory?

I've wondered about this.

None of the freeware process monitors, out of the 20+ I've collected,
have this function.

I've got a handful of shareware ones that do it. Two are so old, they
are NE16'ers. The remaining three are also fairly old, release dates
around 1995-1998, and for 9x only. True that the old dates could simply
reflect that it has been that long since I've probed shareware in that
dept. Yet, put together, with the rest, I suspect that it means something
larger, my not spotting this function at all in anything current.

I note too, that Google has very little to say, when asked this question:

"unload dlls" freeware -always -registry

The results from that are one older shareware; then two simple items. They
are both NE16'ers. Myself, I'm downloading and keeping the two below, as it
has been in cases of 16bit modules where I've sometimes needed to jack them
out of memory.

http://support.microsoft.com/kb/q96312/
http://download.microsoft.com/download/platformsdk/sample80/3.1/w31/en-us/unloader.exe (40k)

http://www.codewright.com/support/addfiles.asp?ID=500
http://www.codewright.com/FTP/Addons/70/WPS.zip (16k)

Maybe one of the technical or programmer types will offer to explain why
the "unload dll" is absent in all / nearly all modern freeware process
managers.

Is it because that unloading a process and its threads is seen to adequately
kick the dlls out of memory? Surely there are still times when we have
incomplete leftovers lingering; for instance, after running buggy programs.

Btw, I'm accepting it as a given that we use the "unload dll" system setting
in our OS, and I'm referring to the occasional circumstance where that has
failed. Another item: I wouldn't think that it would be a function deliberately
omitted for stability reasons, as that act is realm of user choice for such
tools. So, in this question, I'd appreciate some insight...
 
Z

Zo

derek said:
Is there any utilities to unload unused dll's from memory?

Derek

Derek,

I came across this one that says that it will do what you want.

PC Tuner 1.7 714.8 kb

For Win9x/ME/NT/2000 don't know if it will work on XP

screenshot here:

http://www.setiathomescreensaverspeed.co.uk/setiathome/pctuner/tuner2.htm

another screenshot and download link at this page:

http://www.setiathomescreensaverspeed.co.uk/setiathome/pctuner/tuner1.htm

Site says its freeware, haven't used it, maybe someone in the group is
familiar with it.

Zo
 
O

omega

Zo said:
I came across this one that says that it will do what you want.

PC Tuner 1.7 714.8 kb

http://www.setiathomescreensaverspeed.co.uk/setiathome/pctuner/tuner2.htm

Hi, Zo. I'm fairly sure, from looking at the descriptions and pics, that
this is just a "system tweaker." The part about "unload dlls" there, it
looks to concern the registry setting for the OS. I have the assumption
that Derek would have already configured that setting. From there, what
he seeks, and what I have not found in current freeware, it's a process
manager that has specifically an "unload dll" or "unload module" function.

At the moment, there is only freeware I know of for unloading 16bit modules.
An ancient 1994 prog by msft, named WPS.
http://www.redshift.com/~omega/clips/procmon/

In payware process monitors, these are the several I know about that have
the unload dll function:
<$$> Task Pro; Unixorn; DLL Demon </$$>
The copies I have are vintage 1995 for the first two, and 1998 for the last.
I checked Dll Demon, to see if it might have turned freeware, but nope; its
website is up, and still asking for money. I didn't check the other two.
 
Z

Zo

omega said:
Hi, Zo. I'm fairly sure, from looking at the descriptions and pics, that
this is just a "system tweaker." The part about "unload dlls" there, it
looks to concern the registry setting for the OS. I have the assumption
that Derek would have already configured that setting. From there, what
he seeks, and what I have not found in current freeware, it's a process
manager that has specifically an "unload dll" or "unload module" function.

At the moment, there is only freeware I know of for unloading 16bit modules.
An ancient 1994 prog by msft, named WPS.
http://www.redshift.com/~omega/clips/procmon/

In payware process monitors, these are the several I know about that have
the unload dll function:
<$$> Task Pro; Unixorn; DLL Demon </$$>
The copies I have are vintage 1995 for the first two, and 1998 for the last.
I checked Dll Demon, to see if it might have turned freeware, but nope; its
website is up, and still asking for money. I didn't check the other two.

Karen you're probably correct, and the only reason I posted it is because of the

following caption that appears beneath the first link screenshot:

http://www.setiathomescreensaverspeed.co.uk/setiathome/pctuner/tuner2.htm

"Checking Unload dll after use frees up memory by removing dlls from RAM when
their
corresponding programs are closed. If your PC has a bucketload of memory then
program will load faster if their dlls are left in RAM, but if you're short of
memory or dabble with programming then it's best to have the memory grabbing
dlls kicked out of RAM."

Zo
 
O

omega

Zo said:
Karen you're probably correct, and the only reason I posted it is because of the
following caption that appears beneath the first link screenshot:

"Checking Unload dll after use frees up memory by removing dlls from RAM when
their corresponding programs are closed. If your PC has a bucketload of memory
then program will load faster if their dlls are left in RAM, but if you're short
of memory or dabble with programming then it's best to have the memory grabbing
dlls kicked out of RAM."

Useful to post that info about the unload dll registry setting.

My interest in posting that response to you, trying to provide the few
keywords that I could manage, was this... If you (given your famous
searching skills) are not able to dig up a freeware procmon with the
described feature, then I can figure that such a thing might well not
be out there, and the quest largely concluded...
 
D

derek / nul


Thanks Mike, but that still won't do what I would like.
It just sets the reg entry so that explorer will unload dll's when its finished.

I am looking for a program where I can select a dll in memory, and if its not
being used, can be removed from memory.

Derek
 
Z

Zo

derek said:
Is there any utilities to unload unused dll's from memory?

Derek

Derek,

I was able to find this small app called DLL Manager, the author's site
is no longer around. The file name for it is dllmgr.zip. When doing a
Google search for it, I found a download site, but from the readme file,
a few files are not included in this zip file:

Required DLLs not supplied with the small download version:
VBRUN100.DLL VB runtime DLL
CMDIALOG.VBX Common Dialog control (from VB PTK)
CMDIALOG.DLL Common Dialog DLL (supplied with Win 3.1)
TOOLHELP.DLL Windows low-level analysis DLL, can't remember whether
it comes with Win 3.1 or the SDK.
THREED.VBX 3D control (from VB PTK)

Of all of the files listed only "cmdialog.vbx". was not found on my
Win98SE system. I located this file and have included in the the zip
file that I just uploaded to the alt.binaries.freeware newsgroup. It is
only 21 kb in size and I hope this is what you are seeking. The site
where I found the original zip file is here:

http://translate.google.com/transla...er/mixed/&prev=/search?q=dllmgr.zip&hl=en&lr=

tiny url version: http://tinyurl.com/4mgeu

This app has the ability to load and unload dll's

It runs just fine on my Win98SE system, should run on others as well.

Zo
 
D

derek / nul

Derek,

I came across this one that says that it will do what you want.

PC Tuner 1.7 714.8 kb

For Win9x/ME/NT/2000 don't know if it will work on XP

screenshot here:

http://www.setiathomescreensaverspeed.co.uk/setiathome/pctuner/tuner2.htm

another screenshot and download link at this page:

http://www.setiathomescreensaverspeed.co.uk/setiathome/pctuner/tuner1.htm

Site says its freeware, haven't used it, maybe someone in the group is
familiar with it.

Just sets the same old reg entry, uninstalled
 
S

Semi Head

derek / nul said:
wrote in message
Is there any utilities to unload unused
dll's from memory?
Derek

Suggestion:
Here are two monitoring utilities i use with Win-98SE OS that eliminates
worry about left-behind individual dll's in my system.

They are very useful freeware programs (esp. Total Uninstall).

NOTE:
Not sure but now i think you must be a registered member at PC Mag site
in order to get their free download programs.
You may find a download for it elsewhere though.

UnClean 2.0
http://www.pcmag.com/article2/0,1759,1654703,00.asp

Total Uninstall v2.34
http://www.martau.com/tu.html
 
Z

Zo

Zo said:
Derek,

I was able to find this small app called DLL Manager, the author's site
is no longer around. The file name for it is dllmgr.zip. When doing a
Google search for it, I found a download site, but from the readme file,
a few files are not included in this zip file:

Required DLLs not supplied with the small download version:
VBRUN100.DLL VB runtime DLL
CMDIALOG.VBX Common Dialog control (from VB PTK)
CMDIALOG.DLL Common Dialog DLL (supplied with Win 3.1)
TOOLHELP.DLL Windows low-level analysis DLL, can't remember whether
it comes with Win 3.1 or the SDK.
THREED.VBX 3D control (from VB PTK)

Of all of the files listed only "cmdialog.vbx". was not found on my
Win98SE system. I located this file and have included in the the zip
file that I just uploaded to the alt.binaries.freeware newsgroup. It is
only 21 kb in size and I hope this is what you are seeking. The site
where I found the original zip file is here:

http://translate.google.com/transla...er/mixed/&prev=/search?q=dllmgr.zip&hl=en&lr=

tiny url version: http://tinyurl.com/4mgeu

This app has the ability to load and unload dll's

It runs just fine on my Win98SE system, should run on others as well.

Zo

Can someone verify that my post to the alt.binaries.freeware newsgroup did, in fact,
go through? I've checked and it has not shown up on my server yet. If not, then I'll repost again.

Thanks

Zo
 
O

omega

derek / nul said:
Is there any utilities to unload unused dll's from memory?

Not exist for NT/2K/XP ? See quoted conversation excerpts below.

OTOH. Prudens' payware for NT/2K, ExeSpy2000, asserted ability to unload
modules. <$> http://www.spywindows.com/PAGE1/SOFTWARE.HTM </$>

..............................................................................
http://www.experts-exchange.com/Programming/Programming_Languages/Cplusplus/Q_11005521.html

Solution Title: Unloading a DLL from memory...
asked by Chase707 on 08/14/2000 02:14PM PDT

I have written an application using the PSAPI to find a specific DLL in
memory, and then unload that DLL using FreeLibrary. The problem is that
every time I call FreeLibrary I get the error 'The specific module could not
be found.'

I use EnumProcessModules to get a complete list of all active DLLs, and if I
find the one I'm searching for, then I call FreeLibrary using the HMODULE
value returned from EnumProcessModules.

I am confident that I have the proper HMODULE handle, but am curious as to
why i get this error, and what a possible solution is.

I am writting this app so I can unload DLL's that get stuck in memory from
bugs. That way I can debug an application without restarting the computer
everytime I need to rebuild a DLL.


.............................................................................
Comment from PMazur
Date: 08/15/2000 10:44AM PDT

I agree that they can do such a thing in 16-bit environment.
But, I am afraid that it is completely different on NT. I think that you
can't unload library loaded by another process. It would be a serious hole in
the security system.

..............................................................................
Comment from AssafLavie
Date: 08/15/2000 10:44AM PDT

I really don't think it's possible to free a module that's loaded into
another process's address space.

And even if it is possible (though I doubt it) there's the issue of security.
A module is a kernel object and I'm guessing that the token of the caller to
FreeLibrary has to have some rights in the process in order to do that. In
other words, it might not always work...

But correct me if I'm wrong about the ability to FreeLibrary from another
process. I'd like to see the docs that say it's possible.

..............................................................................
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top