Jump to content
Strawberry Orange Banana Lime Leaf Slate Sky Blueberry Grape Watermelon Chocolate Marble
Strawberry Orange Banana Lime Leaf Slate Sky Blueberry Grape Watermelon Chocolate Marble

MSFN is made available via donations, subscriptions and advertising revenue. The use of ad-blocking software hurts the site. Please disable ad-blocking software or set an exception for MSFN. Alternatively, register and become a site sponsor/subscriber and ads will be disabled automatically. 

Dave-H

Puzzling Registry Size Issue

Recommended Posts

loblo    23

If we drift into discussing alternatives to regedit I can only praise and recommend the awesome Regmagik

with its jump to CLSID, jump to path in explorer and export of registry shortcuts, not to mention its excellent search tool, etc...

Now shareware but the last free version (3.26.4), which is the one I use, can be found easily.

:hello:

Share this post


Link to post
Share on other sites
jaclaz    927

I don't think it is "drifting" is more like trying to provide some alternatives that may (or completely fail to) be functional in solving the problem.

However, let's call this Off TOpic :w00t:

http://web.archive.org/web/20100906235707/http://lilith.tec-man.com/hivetools/

New home:

http://www.filewut.com/spages/page.php/software/hivetools

jaclaz

Share this post


Link to post
Share on other sites

I added the /M Option to my RAM Limitation Patch to correct this problem. I was then able to load a Registry with an 18MB SYSTEM.DAT File.

rloew ...

Quick question. How large is the registry export for that registry with 18 MB system + ?? MB user ?

Also could you mention which machine it is ( from the Day-to-day thread ) so we can know the hardware RAM, CPU, etc ?

Share this post


Link to post
Share on other sites
rloew    90

I added the /M Option to my RAM Limitation Patch to correct this problem. I was then able to load a Registry with an 18MB SYSTEM.DAT File.

rloew ...

Quick question. How large is the registry export for that registry with 18 MB system + ?? MB user ?

Also could you mention which machine it is ( from the Day-to-day thread ) so we can know the hardware RAM, CPU, etc ?

Based on the 2011 Date shown for post #79 in this Thread, I assume it was my 16GiB RAM System "Rloew (2)" using an AMD ATHLON X2 6000+.

I don't recall the size of the exported Registry. I built the Registry, tested it, exported it, rebuilt it, tested it, deleted all of the files, and put back the original Registry, all in one day.

Most of the Registry was confined to a small number of Keys, with thousands of Text Values in each. Maybe this is why I was able to rebuild the Registry while others were unable to do so.

The level of complexity was much lower. I solved the Registry Size issue in 2009 as reported by Dave-H. See Post #63.

I created a modified version of REGEDIT that runs offline like REGEDIT does when run in DOS, but can be run in Windows.

Share this post


Link to post
Share on other sites
jds    1
Yes, however, I have no problem exporting from the registry using 'regedit', even when it's about 13MB+2MB. The difficulty is doing the reverse, either "live" or "offline", as 'regedit' crashes and other utilities seem to neglect an import capability.s.

Most likely, 'exporting' ( the ASCII output of the registry on a successfully booted computer ) will always work okay. I probably wasn't clear but what I meant was binary output from a registry tool that saves to a Win9x DAT on disk ( or a no-extension NT hive ) that is perfectly usable at a later bootstrap. Export is done while in protected-mode so by definition the registry was successfully read and loaded. At this point REGEDIT only has to write out the database. If you were to overload the registry with REG files, you could also export it out to a file. It's that next reboot which is scary.

My understanding is that there are two major but separate registry problems in the Win9x family ...

CREATION ... This occurs in DOS when the real-mode part of REGEDIT using /c cannot create one of the DAT files It is trying to rebuild a new registry ( output binary ) from a previously successful export ( input ASCII ). I discovered this way back in Win95 before the OSR updates corrected it ( temporarily ), when certain software moved all of its settings from private files into the registry and doubled the size. It was cat and mouse for the next few years but eventually even for Win98se large exports couldn't be /c created. Before WinME, the patching and backporting of a later REGEDIT version ( e.g., from 95osr to 95 ) allowed successful creation, but we ran out of luck when WinME changed REGEDIT ( it separated CLASSES out of the SYSTEM hive as a last ditch effort to make it manageable ). The reasons for this CREATION bug seem to be registry size, complexity, available RAM, ( and possibly CPU model, speed and cache ) so it is a chaotic and unpredictable problem, and pretty much unsolvable. Remember, this is the 16-bit universe and even before WinME Microsoft was already breaking things and leaving them broken. :realmad: Microsoft could have fixed this in the 32-bit portion instead, but I am guessing that they did not want to give REGEDIT an option to output binary DATs to an arbitrary selected folder which would be necessary since it cannot overwrite the current in-use registry files. A 32-bit registry tool that can do this ( output binary DATs to an arbitrary selected folder ) would be very desirable for Win9x, hence my previous comment.

LOADING ... BSOD protection error preventing successful bootstrap because one of the DATs cannot be successfully read or loaded. I had long thought that this was for all the same reasons, registry size, complexity, available RAM, etc, but here on MSFN RLoew has also discovered a connection to networking in some way. Consequently, a surprised and unprepared Win9x user is screwed at this point. However a well-prepared user has saved many DAT backups and thankfully in Win9x it is simple to change registries in F8 DOS command line. It is very possible while in Windows to absolutely overload the registry with imports ( or just install every SDK ) and it will appear fine as it fits within the protected-mode available memory space, but then it BSOD's on reboot. With great perseverance a person could manage this situation with lots of REG files used when in Windows and have REG 'deleters' to remove them before restart, and/or have fallback DATs ready to be copied in F8 DOS.

Interestingly enough, one program that I never saw choke on a large registry was RegCompact by Daniel Werner, a 32-bit protected mode app which near as I can tell reads the currently loaded registry in memory and writes it out sequentially, removes any fragmentation 'holes'. It uses WININIT.INI to do this by outputting the DATs as C:\WINDOWS\TEMP\RCxxxx.TMP that are swapped in on next reboot. In my experience it was always successful in this 'defragmentation, and, on the following reboot I don't recall any problems either. But if you stop and think about there shouldn't be any problems because what you are loading in these new' DATs is just a likely smaller, and purified version of the previous working registry. Theoretically it should become problematic when you start pumping in REG files just before you RegCompact.

The way I managed things on Win98se after the WinME registry change forked it up ...

  • Boot Win9x normally without BSOD
  • Backup DATs ( 'A' )
  • Import the required REG data in REGEDIT
  • Backup DATs ( 'B' )
  • Run RegCompact
  • Copy the newly created DATs cited in WININIT.INI, rename to DATs ( 'C' )
  • Now I have three sets of registry DATs, A, B, C

Then I would try booting C having A to fall back on. Note that B was saved just for informational purposes, because C is a purified and smaller version of B. If this concept is understandable and makes sense, then you should be able to do this successfully. Just remember that A, B, C represent three points along the timeline. I never did have a problem here but I never did push it for experimentation's sake. In other words I never imported huge amounts just to learn the limits of that specific computer ( once again assuming the BSOD is related to registry size, complexity, available RAM, Networking, CPU model/speed/cache, etc ).

Last registry size that I used on Win98se ...

SYSTEM.DAT ..... 12,873,760

USER.DAT ........ 3,665,952

ASCII Export ... 21,261,267

I just want to repeat - that registry was highly managed. I didn't just throw stuff into REG files to experiment and explore the outer limits! What I imported was highly error checked and optimized ( some might say obsessively :lol: ) , paths shortened, ~SFN~ removed, font and other paths, etc. And I had a habit of deleting large chunks of unnecessary information ( Shared DLLs, Windows setup info, etc ). If I had left that all in plus all the MSI installer garbage with the absolutely insane amounts of entries ( for every single file found in every SDK ), I bet that registry export might be be closer to 50 MB. The point is, those sizes shown DO NOT REPRESENT any kind of upper limits. Please, don't anyone assume those numbers should be used as guidelines!

NOTE: for RegCompact, there are four different versions that I have seen ...

73,728 ... 10-15-00 ... 4:36a ... Regcompact.exe_(2000-10-15)

73,728 ... 10-18-00 .. 12:39a ... Regcompact.exe_(2000-10-18)

73,728 ... 10-28-00 ... 5:16p ... Regcompact.exe_(2000-10-28)

73,728 ... 12-01-00 ... 8:33p ... Regcompact.exe_(2000-12-01) ... using this

Hi Charlotte,

Yep, you've hit the nail on the head, as they say. Your description of the creation problem is exactly where I'm stuck.

Your description about protected mode 'regedit' gave me an idea :

If, when you first install a system, and have the bare essentials and drivers working, save the 'system.dat' and 'user.dat' files away as a "minimal" registry. Later, when you need to rebuild, export everything with the protected mode 'regedit', then swap the 'system.dat' and 'user.dat' files with the "minimal" set. Reboot, then import all that you exported earlier using the protected mode 'regedit'. Should work, I think.

I tried to find 'regcompact' of 2000-12-01 to no avail, the nearest I could find was the 2000-10-28 version, which is available in the "win95\util" directory of your favourite Simtel mirror under the name "regcmp1b.zip". Haven't tried it yet. I don't suppose the newer version is sufficiently similar that patching is an option?

Joe.

Edited by jds

Share this post


Link to post
Share on other sites
submix8c    89
Hi Charlotte,

Yep, you've hit the nail on the head, as they say. Your description of the creation problem is exactly where I'm stuck.

Your description about protected mode 'regedit' gave me an idea :

If, when you first install a system, and have the bare essentials and drivers working, save the 'system.dat' and 'user.dat' files away as a "minimal" registry. Later, when you need to rebuild, export everything with the protected mode 'regedit', then swap the 'system.dat' and 'user.dat' files with the "minimal" set. Reboot, then import all that you exported earlier using the protected mode 'regedit'. Should work, I think.

??? I think I kind of "implied" that in my post about REG.EXE??? I SPECIFICALLY remember creating a Boot Floppy with it for that exact purpose...

Perhaps "Safe Mode" with REGEDIT.EXE -OR- "Safe Mode->Command Prompt"/BootFloppy with REG.EXE (same-o same-o)...

Seriously... what am I missing here?

Share this post


Link to post
Share on other sites
I tried to find 'regcompact' of 2000-12-01 to no avail, the nearest I could find was the 2000-10-28 version, which is available in the "Win95\util" directory of your favourite Simtel mirror under the name "regcmp1b.zip". Haven't tried it yet. I don't suppose the newer version is sufficiently similar that patching is an option?

I am looking around for RegCompact at this time, I can see that it will take a while :-( He seems to have moved to NT editions with version 2. There is/was a .NET version and now a 'final' edition v2.6.7 here ( also only for NT ). I found his official website called Experimental Scene but it has been scrubbed of mention of the program. Wayback has an archive. I will check the SimTel mirrors and track down the Win9x versions. Notice in my previous post that they are all identical sized, so I will have to diff them to see if he only changed version strings.

Yep, you've hit the nail on the head, as they say. Your description of the creation problem is exactly where I'm stuck.

Your description about protected mode 'regedit' gave me an idea :

If, when you first install a system, and have the bare essentials and drivers working, save the 'system.dat' and 'user.dat' files away as a "minimal" registry. Later, when you need to rebuild, export everything with the protected mode 'regedit', then swap the 'system.dat' and 'user.dat' files with the "minimal" set. Reboot, then import all that you exported earlier using the protected mode 'regedit'. Should work, I think.

After doing a Win9x full install is a great time to make backups, I know I always did. It's easy to grab the DATs at every opportunity and fortunately Win9x does not lock the files from being copied at any point like NT versions do. So copying them and archiving them with a batch file is ridiculously simple and would be crazy not to. I also prefer a corresponding ASCII export to be saved simultaneously ( although RegDat or RegExport will let you do this later naturally ). Windiff'ing the exports is the best way to detect changes and create a manual rollback to fix something gone awry.

"export everything with the protected mode 'regedit', then swap the 'system.dat' and 'user.dat' files with the "minimal" set. Reboot, then import all that you exported earlier using the protected mode 'regedit'. Should work, I think." ... of course keeping in mind that within Windows you can kill the registry by adding massive quantities/complexities and won't be aware until the very next reboot.

One other thing about registry importing/exporting is the fact that almost the entire blueprint for a given Win9x system exists in the registry ( aside from a few stragglers in SYSTEM.INI and a few other exceptions ) which means that a complete import is almost never a good idea unless the hardware never changes in the slightest way ( even a mouse ). Many of the system keys require great care! From my personal research ...

[HKEY_LOCAL_MACHINE\Config]

[HKEY_LOCAL_MACHINE\Driver]

[HKEY_LOCAL_MACHINE\Enum]

[HKEY_LOCAL_MACHINE\Hardware]

[HKEY_LOCAL_MACHINE\System]

... of which this very important one in particular ...

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Asd]

... is machine specific, vital and really the central nervous system and or DNA of a given Win9x computer. It's two important subkeys ...

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Asd\Prob\{9b4e7760-3196-11cf-97ea-00aa0034319d}]

[[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Asd\Prob\{cf2524c0-29ae-11cf-97ea-00aa0034319d}]

... to the best of my knowledge are literally the closest comparison in Win9x to a DOS era CONFIG.SYS or Win3x era SYSTEM.INI sequential startup list. Entries in the first one are 'ENUMERATED' and the second one 'STARTED' in the order they literally appear in the exported registry ASCII text ( not the way they necessarily appear in the sorted REGEDIT GUI ). Remove an entry and it is gone, move them out of order ( especially things like Acpi\\*pnp0xxx entries ) and it can go FUBAR. There are many things that order dependent ( a HDD controller before a disk attached to it, any 'bus' before one of its attached devices, etc )

Consequently, these keys should never be imported unless the hardware has not changed at all. On a long running system you can export that key and glance through the sequential entries and learn the exact order everything was added to a system, right down to a mouse, or disk, USB included. For example if you added a new CD drive or USB flash drive ( or any hardware ), along with all the more generic entries elsewhere, there will be one one entry at the end of both of those keys ( sometimes only one of the keys ) which IMHO is the flag or trigger during a bootstrap to enumerate and/or start a device. Note, this information is completely from my own experimentation, I searched for authoritative sources over the years to no avail. One other note, hard drives each get an entry too, however they are so generic with many sharing the same IDE type 47 or 80 description that you cannot really determine one from the other historically in this key. Instead Win9x relies on controller and cable position ( PM PS SM SS ) to enumerate and start them.

I know this is a bit off topic, I just want to repeat that dropping entire registry exports into REGEDIT is a very bad idea, even on Win9x ( which itself is very light on registry and overhead compared to WinXP ), that is of course, if you want everything working properly. You can often drop a HDD from one Win9x installation into an entirely different computer and even though every ENUM and other system key is completely different, it seems to boot and operate okay ( if by okay you mean compatibility mode! ). Point being, these keys are very important to a perfectly working system. They must be treated carefully. I have done piecemeal transplants working around these keys many times. Often I exported those specific keys, edited them against a master list of hardware, even re-arranging the enumeration and starting, and then deleted the branch, re-imported them, rebooted and continued. Such work is not for the faint of heart! But it somewhat corresponds to the DOS days of ultra-managed CONFIG.SYS and AUTOEXEC.BAT entries to get the perfect running system ( but of course the goal there was slightly different in that it was more about getting a driver to load before another to more efficiently fill up the memory space leaving maximum available RAM for applications ).

Sorry about the digression, and I expect you already know of these issues, it is just for the later readers of this thread that I want to say: BE CAREFUL in here.

Share this post


Link to post
Share on other sites

RegCompact for Win9x ... 2012 Updated Links ...

Well I started looking for file links and found a reference pointing back to a post here by me in a 2008 MSFN thread of which I had forgotten about, almost exactly 4 years ago to the day. At that point I already had located 4 different compiles of RegCompact v1.0. And after today, there are now 6. Rather than bump that 4 year old thread I'll post the findings here. Recall that previously there were 4 files named REGCOMPACT.EXE all v1.0 and now I find a 5th one ( and Jaclaz a 6th one ). The newest one is dated even more recently 2001-05-28 and is still v1.0. I also found working direct links to 2 of the 4 files I had previously. Get the files while you still can ( don't ask me how they manage to scrub all these files from the internet, but somehow they manage ). Complete inventory ...

-- Filename ------- Size -- Version --- MODIFIED DateTime ------------------ MD5 -------------------- CRC32 ---- Working Links?

RegCompact.exe ... 73,728 ... 1.0 ... 2000-10-15 - 05:36:10 ... d6c48ea6219abd82c127cf38994e0ed7 ... 98738fc3 ... (none found )

RegCompact.exe ... 73,728 ... 1.0 ... 2000-10-18 - 01:39:30 ... 328012d5badf9833ad645d7ca9b08b37 ... 2e4d7e33 ... Regcmp1a.zip

RegCompact.exe ... 73,728 ... 1.0 ... 2000-10-28 - 18:16:16 ... f5e3fbb6209a0ed15e82be0f2b1847f7 ... 00b40b76 ... Regcmp1b.zip

RegCompact.exe ... 73,728 ... 1.0 ... 2000-11-18 - 19:59:26 ... 3610d8baac81a9a7f44a2a8e02c8eca1 ... 29ff541c ... RegCompact1.0.exe

RegCompact.exe ... 73,728 ... 1.0 ... 2000-12-01 - 21:33:08 ... 5749eb12f8c4f4fa3f2489e62a0c1531 ... 036ee115 ... (none found)

RegCompact.exe ... 73,728 ... 1.0 ... 2001-05-28 - 20:48:52 ... fa3f9649f5f5f74b7036a48bcf205d42 ... bef289d7 ... Regcompact_1.0.zip

Here are all the hashes as determined by NirSoft HashMyFiles ...

-- Filename ------- Size -- Version --- MODIFIED DateTime ------------------ MD5 ------------------------------------- SHA1 ---------------------- CRC32 ------------------------------- SHA-256 -------------------------------------------------------------------------------------------- SHA-512 -------------------------------------------------------------------------------------------------------------- SHA-384 --------------------------------------------
RegCompact.exe ... 73,728 ... 1.0 ... 2000-10-15 - 05:36:10 ... d6c48ea6219abd82c127cf38994e0ed7 ... eabef0b84fc357694daa2f528488f8ac1f615394 ... 98738fc3 ... 3a7860ff36209d68e6763afc500e9c62bdca2237998607fc16c03a0cd1b80169 ... 26262f1271f7ca40c8384a2397b9a2859e66978a965ea5a361d53ac33b80b788a1bfecb59dacdf866b2b41bbb6f7544f7c594bf51af48d7897373b1353a0f34a ... b82d19e5f46d4d761555f54ab4c049bb95679f8fe56ebb4be0efef2320db0495ab00292679315621629a767e49cf1327
RegCompact.exe ... 73,728 ... 1.0 ... 2000-10-18 - 01:39:30 ... 328012d5badf9833ad645d7ca9b08b37 ... ab84d5248a8795470e7c7afcaf0994d18d28c01c ... 2e4d7e33 ... acbc0fc18df3256b13d8fef7b2df2a39565c5dd065fa5d3d68db8e6480c5ca8f ... 62ce76bfca289b92ba075a5388e59f464a011194e54ab05b043a6a79f7293f2a046c8ab9a8fb0960efd4714d03613480b5636fb5c2bc892c08ffb6ccba3741b2 ... 7705722e7c527741fca51a06fd905c37c07f3ebced4e0902ba19459acb2bc773d751a0cce307c5de86b8dfc48c0c8ca4
RegCompact.exe ... 73,728 ... 1.0 ... 2000-10-28 - 18:16:16 ... f5e3fbb6209a0ed15e82be0f2b1847f7 ... 52ab8b8d344c8935e8ff13b6f05a226992008e88 ... 00b40b76 ... 650e939a133da9573ea09b800bd220fb1fe58a00aabd31a3515997aba04097e8 ... 3bdb9a9a4f143aa56334fd2bbd6deb3691f1972bc3ace1070913868e5873957d5f70c827fd111d4a3e80889f65303e5c5814f6f85d3de4a83fc2fceb2df20b4b ... eb8ff46128b2cb57d4897e73b4f14a816d5cbfdb3d142ddec02c1c813901e7ca867b08ce49e6266d0cb6f9e5334060d4
RegCompact.exe ... 73,728 ... 1.0 ... 2000-11-18 - 19:59:26 ... 3610d8baac81a9a7f44a2a8e02c8eca1 ... 592fe9a6e9ea80a7e61cbe1089fffb315c2b2b6b ... 29ff541c ... fbfe55fa3da0490aa5e0bb038fe340973e5358c5161cc815656eb221e59c3bc9 ... 12ed5445d9652bd5ed74d3515bc0152388e366e48f51ec849040ce65554c97f01f8bb74533a65a4f56f13e7d319fc0389d05f848462bea5a016cd592b00f6f39 ... 03dfe7f89e136a7513dcefe0adb39d7b1abcab7942cd577b9de4ba8d45255aa619412f4d815cc5d8c9d4e78c97495652
RegCompact.exe ... 73,728 ... 1.0 ... 2000-12-01 - 21:33:08 ... 5749eb12f8c4f4fa3f2489e62a0c1531 ... a983554b5b05650ae9e56281181d1ed6f3c281f6 ... 036ee115 ... 246d78e5b9964b7d4593076da69ced1a1cb44b0016e9272922f0a7aa80bb45ba ... 5cc9de44ed8cd847941b7e4943748ea15dd53d2af56ab7e38dad37bfbc5280e01c0ddf6f985c41cbde5b81bd1a95b3391bb607d54b08b75da7fb352cafb19611 ... fe66a3fac84b429513ceb7321d6a4a540746f595ca1cc23f2b62271b0348ca949f0793cea9f337c8317125e4021ed12a
RegCompact.exe ... 73,728 ... 1.0 ... 2001-05-28 - 20:48:52 ... fa3f9649f5f5f74b7036a48bcf205d42 ... df965ebc291afe6556f423420703511b2db7574d ... bef289d7 ... ea350d5ea624ce0b7985e7db6d85eb700bf25ff1f3d90ad46ba3bd23f4e7164b ... b801b29768cad3dab3ec6e4ebe28df8d15e9e2cda6d318f71bf6ba50feef1ecef45f8ffb78aa9c0ff0f218336ce1ccdb9edab19f11673e071ba622fc5754d968 ... c2b713c9c77865bef601b602ee8f649de0521053541fd3ad926cf5af2f6fe11b3208ea36295c250de8a4f01f9ccc85a2

DETAILS: In the file resources the languages of all 6 are listed as English (Australia), all with v1.0 and a Copyright © 2000 Daniel Werner. NOTE-1: That newest 2001 distribution is UPX packed to 37,376 bytes. The results shown above are *after* unpacking naturally. NOTE-2: I forgot to mention that both regcmp1a.zip and regcmp1a.zip have an installer EXE inside them named RegCompact1.0.exe. This can be simply extracted with WinRar. The 3rd download from 2001 has no installer in it, just the UPX packed exe and doc. The RegCompact1.0.exe ( 2000-11-18 ) download is itself an SFX installer easily extracted with WinRar and inside it is the normal EXE. NOTE-3: The readme for the 2001 version is in Italian ( "Leggimi.txt" ). My Italian is rusty but it appears to be the same information as found in the README.TXT that I have from the 2000-12-01 version. Perhaps Jaclaz or someone else can verify ...

... 2000-12-01 executable with README.TXT dated 2000-11-30 ...

RegCompact 1.0 - http://talismanic.net/codeworld/regcompact/

By Daniel Werner - dwerner@talismanic.net

About The Registry

===== === ========

The registry is a central part of the Windows operating systems. The data in the registry

is stored in more than one file, each file called a hive, hence the beehive icon for

RegCompact. On Windows95 and 98 there are two registry hives, System.dat and User.dat.

On WindowsNT and 2000 there are System, Default, SAM, Security and Software hives.

Most programs store their configuration data in the registry. Over time, as programs are

installed and uninstalled, the registry becomes fragmented. Also, when data is removed from

the registry it's space is not reclaimed until more data overwrites the empty space. This

has a significant impact on the performance of Windows and programs that make heavy use of the registry. It is most evident at boot time and when running programs that use lots of COM

classes (such as Microsoft Office, Internet Explorer, any programs written in Visual Basic,

and lots of commercial software). Whenever you install software data is written to the

registry so the software can later be uninstalled.

What RegCompact Does

==== ========== ====

RegCompact eliminates registry fragmentation by writing the data in the registry out into a

temporary file. This data is written sequentially, so there are no holes from deleted data

or fragmentation. RegCompact then reboots the system, and the compacted registry hives are

replaced when the system starts up.

Command Line Arguments

======= ==== =========

If you execute RegCompact with the /NOGUI command line argument it will automatically

compact the registry hives and reboot the system with no user interaction.

Requirements

============

Any computer running Windows95, 98, Me, NT 4.0 or 2000 is supported.

Shareware Information

========= ===========

RegCompact is Shareware. There is no mechanism in RegCompact such as nag screens, time

limits, etc. to try to make you pay. I trust the good will of people to pay if they enjoy

the program. To make it easy for people to donate I have set up an online purchasing system

at RegSoft. All you need is a credit card and you can donate from anywhere in the world.

It is completely safe and secure. It also makes it easy for me, as I live in Australia.

If you do not have a credit card but would like to send a cheque then email me at

dwerner@talismanic.net for my postal address.

The Online Purchasing System is at:

http://www.regsoft.net/purchase.php3?productid=34532

If your browser does not support secure transactions then use the nonsecure form at:

http://www.regsoft.net/purchase_nonsecure.php3?productid=34532

All donations are greatly appreciated.

... 2001-05-28 executable with LEGGIMI.TXT dated 2002-08-16 ...

RegCompact 1.0 - http://talismanic.net/codeworld/regcompact/

Scritto da Daniel Werner - dwerner@talismanic.net

Traduzione e adattamento a cura di Marco D'Amato

Informazioni sul registro di configurazione di Windows

======================================================

Il registro di configurazione rappresenta il cuore del sistema operativo Windows. Le

informazioni contenute nel registro sono memorizzate in più file separati chiamati

"hive" (letteralmente, alveari), nome utilizzato anche da RegCompact per rappresentare le sue icone.

In Windows 95 e Windows 98 sono presenti due "hive": System.dat e User.dat. In Windows NT e 2000 sono presenti cinque "hive": System, Default, SAM, Security e Software. Il registro di

configurazione di Windows è utilizzato dalla maggior parte delle applicazioni quale archivio

principale in cui memorizzare le proprie informazioni di configurazione. Col passare del

tempo, a causa delle continue operazioni di installazione e rimozione dei programmi, il

registro di configurazione comincia a frammentarsi. Rimuovere informazioni o chiavi dal

registro comporta la creazione di veri e propri spazi vuoti nel corpo del registro stesso

che è possibile riempire solo aggiungendo nuove informazioni.

Questo comporta un significativo impatto negativo sulle prestazioni sia del sistema operativo, sia di tutti quei programmi che utilizzano pesantemente il registro. Ciò è

particolarmente evidente all'avvio del sistema e durante l'esecuzione di programmi che

utilizzano le classi COM (ad esempio, Microsoft Office, Internet Explorer, tutte le applicazioni scritte in Visual Basic e la maggior parte dei software commerciali). Ogni

qualvolta si installa un software, le informazioni sulla rimozione del programma sono

memorizzate nel registro di configurazione.

Cosa fa RegCompact

==================

RegCompact deframmenta il registro di configurazione di Windows esportando in un file

temporaneo le informazioni in esso contenute. La scrittura dei dati avviene sequenzialmente,

consentendo l'eliminazione di eventuali spazi vuoti. Al termine dell'operazione, RegCompact

riavvierà il sistema consentendo ai nuovi "hive" compattati di sostituire gli "hive"

precedenti.

Parametri della riga di comando

===============================

Se si esegue RegCompact con il parametro /NOGUI, il programma deframmenterà automaticamente

gli "hive" del registro di configurazione di Windows e riavvierà il sistema senza alcun

intervento da parte dell'utente.

Richieste di sistema

====================

RegCompact richiede Windows 95, Windows 98, Windows NT 4.0 oppure Windows 2000.

RegCompact non è stato completamente testato con Windows Me.

Informazioni sulla versione shareware

=====================================

RegCompact è un programma shareware. Non sono stati imposti limiti di tempo all'utilizzo

del software, non sono state aggiunte finestre di notifica né sono stati utilizzati altri

metodi per invogliare l'utente a registrare il programma. Credo nell'onestà delle persone

e sono convinto che l'importo richiesto sarà versato da coloro che troveranno di proprio

gradimento il programma. Per semplificare il processo di registrazione di RegCompact, è possibile effettuare acquisti online sul sito di RegSoft. È sufficiente essere in possesso

di una carta di credito per effettuare il pagamento da qualunque parte del mondo. La

transazione è assolutamente sicura. Questo metodo mi consente di semplificare il processo

di registrazione, in quanto vivo in Australia. Se non si possiede una carta di credito ma si

desidera pagare tramite assegno bancario, richiedete il mio indirizzo postale inviandomi

un'e-mail all'indirizzo dwerner@xoasis.com.

È possibile effettuare l'acquisto online su:

http://www.regsoft.net/purchase.php3?productid=34532

Se il browser non supporta la transazione sicura, è possibile utilizzare la scheda

(non sicura) su:

http://www.regsoft.net/purchase_nonsecure.php3?productid=34532

Tutte le donazioni saranno ben accette.

IMPORTANT ... I HAVE NOT TESTED the last two dated 2001-05-28 and 2000-11-18 since I just got them now and have no Win9x computer available right at this moment. If anyone can test them out PLEASE report the results. I did submit the unpacked 2001 file to both Jotti and VirusTotal which is 62 scanners. All came up clean except for ClamWin which suggests: PUA.Win32.Packer.PrivateExeProte-15. I highly doubt that ClamWin results is something I would bet the farm on. I just submitted the 2000-11-18 file and it was already scanned as 'clean' by someone else earlier ( Jotti and VirusTotal ).

EDIT: Added file sizes. Added a 6th file that Jaclaz found.

Edited by CharlotteTheHarlot

Share this post


Link to post
Share on other sites
Foxbat    0

The 3rd download from 2001 has no installer in it, just the UPX packed exe and doc. NOTE-3: The readme for the 2001 version is in Italian ( "Leggimi.txt" ). My Italian is rusty but it appears to be the same information as found in the README.TXT that I have from the 2000-12-01 version. Perhaps Jaclaz or someone else can verify ...

I ran the 2001 version of RegCompact.exe file without performing the compaction. It is also localized in Italian. The update could just be the localization, but we'll see. I will try to test and compare the results of two different versions tomorrow.

Share this post


Link to post
Share on other sites
jaclaz    927

The program was "localized" in 2002 seemingly:

http://news.swzone.it/traduzioni/40_RegCompact.html

Just for the record, Marco D'amato is most probably the same Marco D'Amato Author of Wincontig:

http://wincontig.mdtzone.it/en/

and a very nice guy :thumbup , if needed I can contact him and ask him if he remembers anything abotu the thingy and it's versions.

A .exe RAR self-extracting English version is here (the actual regcompact.exe and ReadMe.txt being dated 18/11/2000):

http://www.ndfr.net/telechargements/regcompact-1-0-13.html

jaclaz

Share this post


Link to post
Share on other sites
The program was "localized" in 2002 seemingly:

http://news.swzone.it/traduzioni/40_RegCompact.html

Just for the record, Marco D'amato is most probably the same Marco D'Amato Author of Wincontig:

http://wincontig.mdtzone.it/en/

and a very nice guy :thumbup , if needed I can contact him and ask him if he remembers anything abotu the thingy and it's versions.

It would be interesting to hear what he has to say. :thumbup

A .exe RAR self-extracting English version is here (the actual regcompact.exe and ReadMe.txt being dated 18/11/2000):

http://www.ndfr.net/telechargements/regcompact-1-0-13.html

I added it to the above. It is indeed a 6th unique compile.

EDIT: typo

Edited by CharlotteTheHarlot

Share this post


Link to post
Share on other sites
submix8c    89

OUCH!!!! Totally forgot about this!

One other thing about registry importing/exporting is the fact that almost the entire blueprint for a given Win9x system exists in the registry ( aside from a few stragglers in SYSTEM.INI and a few other exceptions )

Share this post


Link to post
Share on other sites
dencorso    531

In case you didn't grab Registry Concentrator when it was originally posted, I've just reuploaded them to zShare, so grab them while you can.

The links are inside the quotes, which I've edited a little... the red highlights are mine.

I am on WinMe and if I was on 98 I would probably have bumped in similar issues as the cumulated size of my classes.dat and system.dat is above 13MB. The biggest eaters in terms of size seem to be DirectX and the dotnet runtimes with their huge amount of CLSIDs keys.

I think I have read about the registry files having a maximum size on Win9x but I cannot find anything about it now.

What seems certain anyway is that scanreg is unable to compact registry files which are above 8MB.

IMO the best doc about the win9x registry is in japanese : Regist"o"ry

There is one page in english though but for the rest you'll need to use babelfish or google translate. He details several different methods for compacting the registry and there is alot about the registry stucture.

This guy wrote a registry concentrator, RegCon which is the only one that does actually work amongst the many claiming to to do that and that I have tried.

He also wrote a registry analyzer, Registrip, which has no equivalent and which displays charts and pies about registry occupation (used space, empty space, dead gaps).

I have translated those two interesting freebies some time ago, the first partially and the second more completely.

I have uploaded those translated apps, in case you find them useful to troubleshoot or circumvent your issue :

RegUtils.7z

Here you go :hello:

RegDoc.7z

Share this post


Link to post
Share on other sites
Foxbat    0

i have tested RegCompact.exe dated 2000-11-18, and the most recent one, dated 2001-05-28. Windows normally make changes to the registry upon every startup, which complicates the test. This makes it difficult to determine if modifications were the actions of Windows or RegCompact. The important thing is that no keys were removed during the entire process, which helps preserve much of the structure.

>> RegCompact.exe dated 2000-11-18

Before compacting:

SYSTEM.DAT is 9,240,608 bytes

USER.DAT is 1,736,736 bytes

Within the UI, RegCompact reports the current registry size and predicted size after compacting:

SYSTEM.DAT 9024KB --> 8628KB

USER.DAT 1696KB --> 1200KB

After compacting:

SYSTEM.DAT is 8,835,104 bytes

USER.DAT is 1,228,832 bytes

Using RegShot 1.8.2 to compare the compacted registry to the original, there were a number of modifications, but no keys were removed.

>> Original registry is restored for the next test, but startup modifies it as normal, so it is not the same registry as the first original, but structurally is very similar, and size is identical.

>> RegCompact.exe dated 2001-05-28

Before compacting:

SYSTEM.DAT is 9,240,608 bytes

USER.DAT is 1,736,736 bytes

Within the UI, RegCompact reports the current registry size and predicted size after compacting:

SYSTEM.DAT 9024KB --> 8628KB

USER.DAT 1696KB --> 1204KB

After compacting:

SYSTEM.DAT is 8,835,104 bytes

USER.DAT is 1,237,024 bytes

Using RegShot 1.8.2 to compare the compacted registry to the original, there were a number of modifications, but no keys were removed.

>> Other than the compacted size of USER.DAT, I cannot determine if there were any functional differences between the two versions. What I can conclude is they both did their job without breaking the registry.

Share this post


Link to post
Share on other sites
i have tested RegCompact.exe dated 2000-11-18, and the most recent one, dated 2001-05-28. Windows normally make changes to the registry upon every startup, which complicates the test. This makes it difficult to determine if modifications were the actions of Windows or RegCompact. The important thing is that no keys were removed during the entire process, which helps preserve much of the structure.

>> Other than the compacted size of USER.DAT, I cannot determine if there were any functional differences between the two versions. What I can conclude is they both did their job without breaking the registry.

Thanks for the info! And be aware that there is no need for the reboot if you don't mind getting your hands dirty.

Yes, it uses the WININIT.INI 'rename' method. The new binary files ( the registry DATs ) are temporarily in C:\WINDOWS\TEMP with names like RC1154.TMP for example. They are scheduled to be moved under the [rename] section of WININIT.INI which is executed on bootup.

These files can be intercepted quite simply. When RegCompact is complete and prompts for reboot, simply kill the task to close it. Then use the info found in the newly created WININIT.INI and move the two files to somewhere else, out of Windows\Temp and then rename them according to what WININIT.INI says ( or just name the biggest one SYSTEM.DAT and the other USER.DAT ). Then you can delete WININIT.INI and you're done. No need to go all the way through the reboot unless you want to. If you were to run RegCompact again immediately it would start over again as if it were never run before. This is the way I would get a new registry without actually having to use it.

Looking at my old Win9x notes I just noticed an odd convention used by RegCompact ( well, odd to me, maybe normal for the time ). I didn't log which particular REGCOMPACT.EXE file I tested, but an actual entry found in WININIT.INI was entered by one of them like so ...

[rename]

C:\WINDOWS\SYSTEM\..\USER.DAT=C:\WINDOWS\TEMP\RC1154.TMP

C:\WINDOWS\SYSTEM\..\SYSTEM.DAT=C:\WINDOWS\TEMP\RC1153.TMP

C:\WINDOWS\SYSTEM\..\SYSTEM.DAT=C:\WINDOWS\TEMP\RC1153.TMP

I made a note of the fact that there is one error there ( the repeated 2nd entry ) and one odd programming convention ( the parent folder '..' dereferencing ). That repeating error I don't really care for because the [rename] operations using '=' are a MOVE ( to the best of my knowledge ). That means that the repeated command must fail since the file no longer exists by the time it is executed. The parent folder dereferencing is fine but theoretically inefficient because it says look in C: then in WINDOWS then in SYSTEM then back up one level where we just were and use the file named xxx.DAT. Anyway, I noted all of the above and rewrote it like this without the repeat and with tighter code ...

[rename]

C:\WINDOWS\USER.DAT=C:\WINDOWS\TEMP\RC1154.TMP

C:\WINDOWS\SYSTEM.DAT=C:\WINDOWS\TEMP\RC1153.TMP

It is probably good advice for users of RegCompact to always check WININIT.INI before allowing the reboot. When I get a chance to, I will try all 6 of the RegCompact programs and try to determine if they all handle WININIT.INI this way. It is possible that this is a bug that he fixed and explains all the different builds, but I am just speculating.

The important thing is that no keys were removed during the entire process, which helps preserve much of the structure.

That is by design for registry defraggers. Theoretically it is just a long continuous write to disk of the currently loaded in memory or paged out registry, so you wind up with a 'compact' ( for lack of a better word ) registry minus any holes that exist from perhaps deleting a bunch of keys or values. This is contrasted with registry 'optimizers' ( 'cleaner' or 'repair' or 'fix' or other marketing speak ) which attempt to delete and correct registry structure and/or data. For the latter type of utility I prefer only the ones that will create an output log to save ( rather than simply presenting a list of choices to check or uncheck ) so that I can later do it myself. There is a lot of risk to those utilities.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Recently Browsing   0 members

    No registered users viewing this page.

×