FDアクセスのリアルタイム監視について

解決


つよし  2004-10-18 20:25:07  No: 54795

どなたかご教授いただけませんでしょうか?

今、FDに対するアクセス(ファイルの作成・更新など)を監視する
プログラムを作成したいと考えています。

ハードディスク内の特定のディレクトリを監視するときと同じように
ReadDirectoryChangesW()を使ってサンプルプログラムを作成し、
ハードディスクでは正常に動作させることができています。

ただしFDに対して同じものを利用すると、FDが装填されていない場合に
CreateFile()がエラーとなり、正常に監視をおこなうことができません。

調べてみると、ReadDirectoryChangesW()は第一引数にHANDLEを要求しますが
この子がFILE_LIST_DIRECTORYアクセス権を持ってCreateFile()された
HANDLEでないといけないようです。FDを装填しない状態で、Aドライブに
対してFILE_LIST_DIRECTORYアクセス権付きでCreateFile()すると
ハンドルが正常に取得できません。

そこで教えて頂きたいのですが、
  ・FDを装填しない状態でもFILE_LIST_DIRECTORYアクセス権付きで
    CreateFile()が正常にハンドル取得できる方法があるのか?
  ・上記が駄目として、FDへのアクセスをリアルタイムで監視でき、
    そのトリガに基づいてReadDirectoryChangesW()を使用する
    方法等があるのか?
  ・根本的に、ReadDirectoryChangesW()以外の方法でFDアクセスを
    監視できるのか?
について、アドバイスを頂けませんでしょうか?

宜しくお願い致します。


岡田 之仁  2004-10-20 17:53:49  No: 54796

OSや環境は?

まず、FDが装填されていない状態でエラーになるのを無理
やり行なうのは、ナンセンスかと・・・
エラーするなら、『FDが装填されていないので監視を断念』
と言うことにはならないのでしょうか?

FDと言うデバイスを特定せずにアクセス監視するならば、
フィルタードライバーを作成してやるのが一番安全で高速
かと・・・

たまたまですが・・・
WindowsXPフィルタドライバプログラミング
入門と実践  技術評論社  ISBN4-7741-1666-1 \3250

この書籍のp171〜FDDアクセスの章が掲載されていますの
で、ご参考までに・・・

以上。


つよし  2004-10-21 07:04:11  No: 54797

お礼が遅くなりまして申し訳ございません。

ご回答ありがとうございます。
OSはWindowsXPを対象に考えていました。
仰るとおり、エラーとなるものを監視しようとする
発想が間違っていますよね。

実は恥ずかしながらフィルタドライバなるものの存在を
知りませんでした。FDドライブの監視手法はかなり調査
したのですが、うまく見つけられなかったです…
早速紹介頂いた本を入手して研究してみたいと思います!

お忙しい中ありがとうございました!

失礼いたします。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加