RAMディスクの認識・アクセス監視
DLWアクセスランプは、Windowsのパフォーマンスカウンタを参照することにより、ディスクドライブのアクセス有無を監視・表示しています。
RAMディスクについても、RAMディスクソフトがパフォーマンスカウンタを適切に設定更新していれば、アクセスランプの表示が可能です。実際にフリーウェアのRAMディスクソフトを中心に何本か試してみましたので、動作確認結果を一覧表にしておきます。
■ディスクアクセス監視・表示可否
RAMディスクソフト名 | アクセス監視・表示(※1) | ドライブ種類(※2) |
---|---|---|
SoftPerfect RAM Disk v3.4(2013/09/01) |
○(Hard Disk Emulation を指定したドライブのみ) |
固定ディスク or リムーバブルディスク |
Dataram RAMDisk 4_2_0_RC18(Free版 2013/06/27) |
○ | 固定ディスク |
電机本舗 RAMDA Ver 1.5.1(スタンダード無料配布版 13.5.1) |
× | 固定ディスク or RAMディスク |
BUFFALO RAMDISK ユーティリティー Ver.3.2.6.0(2013年5月14日) |
× | 固定ディスク |
(※1)アクセス監視の可否
○のものは、パフォーマンスカウンタからアクセス情報を問題なく取得でき、アクセスランプの表示が可能です。
(PerformanceCounterのカテゴリ「LogicalDisk」、カウンタ名「Disk Read Bytes/sec」「Disk Write Bytes/sec」より、読み出し/書き込みバイト数をリアルタイムで把握可能です)
×のものは、残念ながらパフォーマンスカウンタが設定されていないため、アクセスランプ表示不可、ドライブ名もグレーアウト表示となり、累計積算表示時にもその旨が表示されます。
(※2)ドライブ種類
WindowsのAPIにより把握できるドライブの種類です。
RAMディスクについては、本来はWindowsから「DriveType.Ram」というRAMDISKを表す値が返ってくるはずなのですが、現状では大半のRAMディスクソフトが固定ディスクを表す「DriveType.Fixed」を返すような挙動を取っています。(一部のRAMディスクソフトでは、設定オプション指定でドライブの種類を変更できるようになっているものもありますが)
DLWアクセスランプでも、ドライブ表示対象の識別(設定オプション「ドライブ表示対象−自動設定」にて指定)にこの情報を用いているため、ほとんどのRAMディスクが「HDD等固定ディスクすべて」にチェックをつけていると表示対象となってしまいます。
もっと厳密にドライブの種類を調べる方法もなくはないのですが、手間がかかるだけでなく調べる際のCPU負荷が馬鹿にならないため、簡易的な確認のみ行うようにしています。
RAMディスク一覧のドライブ種類表記/DriveType値(C#のDriveInfo.DriveTypeプロパティ)/DLWアクセスランプ設定ウィンドウでの表記の対応は以下のとおりです。
ドライブ種類表記 | DriveType値 | 設定ウィンドウでの表記 |
---|---|---|
固定ディスク | DriveType.Fixed | HDD等固定ドライブすべて |
リムーバブルディスク | DriveType.Removable | リムーバブルメモリ等すべて |
RAMディスク | DriveType.Ram | 一部のRAMディスク |