■ HwInfo.Dat
Win98 の windows フォルダに「Hwinfo.exe」というソフトが密かに入っている。
これを実行して生成する「HwInfo.Dat」は、何と system.dat、user.dat と同様に、レジストリデータベース構造なのである。拙作 Reistr!p でファイルを開いて分析することもできる。
別コーナーで紹介している LoadHive を使って、HwInfo.Dat の中身をレジストリエディタで見てみよう。HwInfo.Dat は HwInfo.Exe をただ実行するだけで同じフォルダに作成される。
LoadHive を起動し、HwInfo.Dat をロードするレジストリツリーのノードを選び、HwInfo.Dat の存在するパスを「Browse」ボタンで指定し、ツリー上にロードするための仮の名前を設定する。
入力値を確認後、LOAD をクリックし、レジストリエディタを起動する。上の図の通りに設定した場合、HKEY_USERS の下に、新しいノード「HWINFO.DAT」が現れているのが分かるだろう。
どんなキーがあるのだろうか。
★ HKEY_USERS\HWINFO.DAT\ 以下(今回の例の場合)
直下のレジストリデータ Date には、HwInfo.Dat を作成した日付が格納されている。
● currentversion\
「ComputerName」「ProductID」「ProductName」「RegisteredOrganization」「RegisteredOwner」「SubVersionNumber」「Version」「VersionNumber」なるレジストリデータが存在し、これらは HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Currentversion に含まれるレジストリデータのコピーである。
● currentversion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Currentversion\run に含まれるレジストリデータのコピーである。HLM\...\RunService などにもキーがあるとコピーされてくるのかも知れない。
● Enum\(デバイス区分)\(デバイス種類)\*\HwDiag\
● Enum\(デバイス区分)\(デバイス種類)\*\HwDiag\Inst1
● Enum\(デバイス区分)\(デバイス種類)\*\HwDiag\Inst1\Alloc/Basic/Boot/Filtered/Forced
HKEY_LOCAL_MACHINE\Enum 以下に記されたデバイスのうち、実際に運用中のPCに存在するもので、且つ、Enum 以下3階層下のレジストリキーまでのコピーが格納されている。例えば、HLM\Enum\INFRARED(赤外線i/f)は在っても、...\HWINFO.DAT\Enum\INFRARED は存在しない(当方のPCには装備していないため)。
そして、それぞれに HwDiag に続くレジストリキーがぶら下がり、現在のハードウエアの構成状態が詳細に分かるようになっている。例えば ...\HWINFO.DAT\Enum\xxx\xxx\xxx\HwDiag\Inst1 の Problem というレジストリキーの値が、0ならばデバイスは正常に動作しており、0x16(22)ならばその環境では使用不可にされていることが分かる。
早い話、システム(マイコンピュータ)のプロパティ、デバイスマネージャタグで表示される情報の細かいところまでをまとめたもののようだ。
● system\currentcontrolset\Control\InstalledFiles\HwDiag\
このレジストリキー以下には、システムに導入されている機器のドライバファイル名のキーが連なり、さらにそれぞれのキーの下にある Inst1 というキーにはドライバファイルのプロパティ(ファイルサイズや著作権情報など)がデータとして格納されている。
● system\currentcontrolset\services\class\
このレジストリキー以下には、システムに装備されているデバイス区分名のキーが連なり、さらにそれぞれのキーの下に数字のキーがあり、具体的なデバイス名やinfファイル情報、ドライバ情報等のデータが格納されている。更に下に HwDiag というキーを持つものは、そのキーの下にドライバファイル名のキーを持ち、さらにそれぞれのキーの下にある Inst1 というキーには上記キー同様、ドライバファイルのプロパティがデータとして格納されている。
こうしてみると、中身はレジストリデータベースの一部をそのまま切り取ったものではなく、実行時に収集したハードウエア情報も合わせて格納しているようだ。やはりトラブルシュートのために使うのであろうか。しかしながら、ちょっとした個人情報であり、この HwInfo.Dat をユーザーからサポートセンターなどに送れと言われたら、プライバシーの侵害すれすれのような気もする。
なお、レジストリファイルのロードを解除するには、LoadHive の UNLOAD ボタンを使用する。アンロード先のキー名を指定しておく必要がある。