- PR -

USBメモリのファイル監視について

1
投稿者投稿内容
HIRO
常連さん
会議室デビュー日: 2004/10/28
投稿数: 41
投稿日時: 2006-06-14 21:50
USBメモリのファイル監視を行う為にUSBメモリのドライブに対してFileSystemWatcherを使用しファイル作成監視を行っているのですが、FileSystemWatcherにて監視中はUSBメモリの取り外しができません。(使用中になります)
FileSystemWatcherが監視しているわけですから使用中になるのは分かるのですが、USBメモリへの書き込み監視を行い、尚且つ「ハードウェアの安全な取り外し」にて「停止」を実行させる方法はないでしょうか?

分かられる方、ご教授願います。

VisualStudio.NET 2003 Framwork1.1 SP1
WindowsXP Pro SP2
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-06-14 23:46
USBの監視はいつ誰が開始して、いつ誰が終了するのでしょうか?
プログラムの形態はWindowsServiceですか?

#実行環境は?
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2006-06-15 08:02
ファイルの監視を行っているアプリケーションに、USBデバイスを取り外すと言う機能を用意しては如何です。そのボタンを押したら、監視を止めて、DeviceIoControlでアンマウントするとか。
HIRO
常連さん
会議室デビュー日: 2004/10/28
投稿数: 41
投稿日時: 2006-06-15 09:22
かるあさんへ
引用:
USBの監視はいつ誰が開始して、いつ誰が終了するのでしょうか?
プログラムの形態はWindowsServiceですか?
#実行環境は?


おっしゃる通りWindowsServiceにてアプリケーションは起動します。リムーバブルデバイスが接続された時点で監視を開始し、取り外された時点で監視を停止させたいのです。
実行環境は2000、XP、2003になります。

甕星さんへ
引用:
監視を止めて、DeviceIoControlでアンマウントするとか。


監視はWindowsServiceにて行っているのですが、制御はタスクトレイに常駐しているアプリケーションにて可能なのでDeviceIoControlでアンマウントという手は使えます。できれば、通常の操作で取り外しをさせたいので停止されるときのイベント?などを拾えればいいのですが・・・
手詰まりの場合はDeviceIoControlを使おうと思ってます。
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-06-15 10:13
引用:

HIROさんの書き込み (2006-06-15 09:22) より:

おっしゃる通りWindowsServiceにてアプリケーションは起動します。リムーバブルデバイスが接続された時点で監視を開始し、取り外された時点で監視を停止させたいのです。
実行環境は2000、XP、2003になります。


僕もタスクバーに常駐させて落とせばいいか
ぐらいにしか考えていませんでした...

Spy++でメッセージでも確認してみるか


[ メッセージ編集済み 編集者: かるあ 編集日時 2006-06-15 10:13 ]
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2006-06-15 10:28
引用:

リムーバブルデバイスが接続された時点で監視を開始し、取り外された時点で監視を停止させたいのです。



内部動作を解析したわけではありませんが、普通に考えると「デバイスがBUSYでないこと」が取り外すための条件のはずなので、難しいんじゃないかなぁ。
MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2006-06-15 13:37
【TechEd速報】VistaはUSBメモリーの利用を細かく管理できる
http://itpro.nikkeibp.co.jp/article/USNEWS/20060614/240826/
1

スキルアップ/キャリアアップ(JOB@IT)