-1

私は一種のファイルシステムドライバを開発しています。Windowsがファイルシステムに対して行うすべての読み取り要求は、ドライバーの実装によって行われます。

「通常の」読み取り要求と、ファイルからメタデータのみを取得したい要求を区別したいと思います。(Windowsはファイルの最初の4Kを読み取り、次に読み取りを停止します)。

Windowsはこのメタデータの読み取りを何らかの方法でマークしますか?この2種類の操作を異なる方法で処理するために非常に役立ちます。

典型的なCreateFile呼び出しでは、AccessMode、ShareMode、CreationDisposition、FlagsAndAttributesパラメーター(DWORD)がありますが、要求された操作の手がかりを抽出できるかどうかはわかりません。

読んでくれてありがとう :)

4

3 に答える 3

0

Windows ではなく、ファイルのスキャンを実行してメタデータを抽出する Windows エクスプローラーです。さらに、サムネイルを作成するための読み取りにも直面します。

ドライブをリモート/ネットワークとして Windows に報告すると、Explorer が読み取る情報が少なくなり、ファイル システムの負荷が軽減されますが、残念ながらそのような読み取りを完全にブロックする方法はないようです。

于 2010-12-13T13:12:50.977 に答える
0

読み直すと、質問は最適化のために間違った場所を見ているようです。最初の 4KB に対するすべてのリクエストをメタデータのリクエストとして扱わないのはなぜですか? その仮定に害はほとんどありません。

実際には 4KB しか必要としないのに 100MB の実際の I/O を実行している場合、逆の仮定は有害です。しかし、100 MB が必要な場合、最初の 4KB を少し最適化すると、本質的に時間のかかる操作に対して最大 1 回の小さなヒックアップが発生します。

于 2009-11-02T15:35:17.510 に答える
0

SysInternals ファイル監視ツールを入手することをお勧めします。各呼び出しのスタック トレースをキャプチャし、PDB を理解するため、関数名を表示することもできます。これにより、この特定の呼び出しの多くの詳細を把握できるはずです。

于 2009-10-30T10:40:04.173 に答える