前回は、USBメモリ内のファイルを使用しているアプリケーションを調べるということでしたが、今回は付け加えて、USBのハードディスク、DVDドライブやCDドライブ内のファイルをしようしているアプリケーションを調べれるようSafeDevice.exeを改良してみました。
Safe Device
安全にデバイスを取り出すためのサポートアプリケーションです(ハードウェアの安全な取り外しを行った時に「デバイス ‘汎用ボリューム’ を今停止できません。後でデバイスの停止をもう一度実行してください。」エラーが出る人向け)。
今回、いくつか修正を加えましてUSBメモリ・USBハードディスク・CD/DVDドライブに対し、その中のファイルをしようしているアプリケーションがある場合にそれを表示するようにしました。
また、今回から更新動作を1秒おきに行うようしました。これにより、アプリケーションを閉じたりデバイス取り出したりするとリストも自動的に更新されます。
以下に実際使ってみた例なんかを。ドライブが三つありまして、DドライブがDVD-RAM、GドライブがUSBハードディスク、HドライブがUSBメモリになっています。
まずは、DドライブのDVD-RAMですが、ここでは音楽CD(CD-DA)を入れてそれをWindows Media Playerで再生してみました。たしかに、wmplayer.exeが表示されます。
次に、GドライブのUSBのハードディスクにCrystalCPUIDというソフトを入れてそれを起動してみました。この場合もCrystalCPUID.exeが表示されます。
最後に、HドライブのUSBメモリ内のWAVEファイルをSoundEngineで開いてみました。また、エクスプローラーでも表示しています。この場合、SoundEngine.exeとExplorer.exeが表示されました。
ダウンロード
最新版は、こちらからダウンロードして下さい。
なお、基本的使い方については、USBメモリ内のファイルを使用しているアプリケーションを調べるを参照して下さい。
プログラミングキーワード
前回同様、WTLで作ってます。DDKは使ってないです。
DeviceIoControl、IOCTL_STORAGE_GET_DEVICE_NUMBER、QueryDosDevice、DN_DISABLEABLE、STORAGE_DEVICE_NUMBER、SetupDiGetClassDevs、setupapi.h、cfgmgr32.h、winioctl.h、Setupapi.lib