■ Scanreg.exeの限界
Windows98 以降には、レジストリの退避・復旧・修復を行うツール「Scanreg.exe、ScanregW.exe」が付属している。
このうち Scanreg.exe はリアルモードにおいて、ScanregW.exe が退避したレジストリを復旧したり、現在運用中のレジストリを修復したりするのに使う。しかし、いつでも使えるツールでは無いことが実験により明らかになった。
▼8MBの壁
現在運用中のレジストリのサイズ、すなわち Windows フォルダに在る System.dat、User.dat のどちらかのサイズが 8MB を越えると、「Scanreg.exe /fix」コマンドがフリーズする。
原因を推測するに、Win95の必要最低メモリが 8MB である(Win98 もWin95 コア)ため、リアルモードではそれを全て利用できるものの、逆に 8MB までしか作業バッファを確保していない(できない?)からではないだろうか。
▼コンベンショナルメモリの制約
ついでに紹介しておくと、Microsoft Knowledge Base Q187680 によれば、コンベンショナルメモリが最低 340KB 確保できていないと、/fix も /restore も行えないようである。
Config.sys および Autoexec.bat に常駐ドライバやアプリケーションが多数書いてある環境では注意が必要だ。
(協力:秋田芳通様)