フロッピーやMO、リムーバブルディスクへの書出し完了を検知してツールを呼び出すような処理を考えていますが、書出し完了を検知できるものなのでしょうか?なにか手段がわかれば教えてください。エクスプローラでよくプログレスバー表示されているということは、なにかAPIが利用できるのでしょうか?
VC++6.0、MFCです。
書き出し完了は検知できません
エクスプローラのコピー中のプログレスバーも実際にディスクに書かれたサイズを示しているわけではありません。
バーが最後まで言って消えた後も遅延書き込みによってディスクアクセスされています。
FindFirstChangeNotification() かな?
VC++でやったことはありませんが、最近の情報で言うと
.NETのSystem.IO.FileSystemWatcherクラスで行うことに
なろうかと・・・
ただし、該当デバイス全てに対して行うということができ
ません。ワイルドカードを使ってもフォルダ単位が最大で
す。
簡単に・・・ではありませんが、デバイスに対しての書き
込み完了を取るのであれば、デバイスドライバでもフィル
タードライバーというものを作って、ファイルデバイスに
対して割り込ませ、監視させると言う方法があります。
今、手元に書籍が無いので、どこの何だったか書けません
が、デバドラ関係の書籍でフィルタードライバーの書き方
を記載したものがありました。それには、リムーバルメデ
ィアへの読み書きで、暗号化・復号化を行うフィルタード
ライバの記載がありました。
そのソースを変更することで、欲しい機能は実現できるは
ずです。
メーカー・書籍名が解りませんので・・・申し訳ない・・・
参考と言うことで。
以上。
ツイート | ![]() |