[NT]Windows NT のファイル システム トンネリング機能

概要

Windows NT 4.0 には、ファイル システム トンネリング機能が組み込まれており、ファイルのメタ情報を一時的に保持するファイル システムの機能に依存するアプリケーションとの互換性が維持されています。これは、ディレクトリ エントリの削除や名前の変更を行った後に、同じメタ情報を用いて新しいディレクトリ エントリを作成したときに起こります (作成や名前の変更操作により、短時間の内にそのファイルの名前が再使用された場合)。


ディレクトリから名前が削除された場合 (rename または delete)、その短い名前と長い名前のペアと作成時間がキャッシュに保存され、削除された名前によって識別されます。ディレクトリに名前が追加された場合 (rename または create) は、キャッシュが検索され、復元すべき情報があるかどうか確認されます。このキャッシュは、ディレクトリのインスタンスごとに有効です。ディレクトリが削除されると、そのディレクトリのキャッシュが削除されます。


"名前" のトンネリングは、次の一対の操作により行われます。
  • delete(名前)/create(名前)
  • delete(名前)/rename(ソース, 名前)
  • rename(名前, 新しい名前)/create(名前)
  • rename(名前, 新しい名前)/rename(ソース, 名前)
このアイデアは、DOS アプリケーションが自動保存機能を使用する際に期待する動作を倣ったものです。DOS アプリケーションでは、変更されたデータが一時ファイルにコピーされ、元のデータが削除された後、一時ファイルの名前が元の名前に変更されます。これにより、操作の完了時には元のファイル名が表示されます。Windows NT では、FAT ファイル システムと NTFS ファイル システムの両方でトンネリングが実行され、16 ビットのアプリケーションによりこの自動保存機能が実行された場合、短いファイル名と長いファイル名が保持されます。


トンネリングの効果を確認する方法

  1. file1 という名前のファイルを作成します。
  2. 1、2 分待ちます。
  3. file2 という名前のファイルを作成します。
  4. DIR /TC を実行します。作成時間に注意してください。
  5. file1 の名前を file に変更します。
  6. file2 の名前を file1 に変更します。
  7. DIR /TC を実行します。file と file1 の作成時間が同一であることに注意してください。
このとき、両方のファイルの作成時間には同じ時間が表示されます。これらのファイルの作成時間は、元の FILE1 の作成時間と同一であり、トンネリング有効時の期待された結果でもあります。

詳細

トンネリングのキャッシュ時間は、既定時間は 15 秒ですが変更することができます。また、トンネリング機能を使用しない場合は、Windows NT のレジストリに値を追加することにより、無効にすることができます。


トンネリングを無効にすると、この保存機能を使用するアプリケーションでは、認識できない名前 (通常は長いファイル名) を失うことになります。また、そのようなアプリケーションによってファイルが操作されると、作成時のタイムスタンプが保持されないので、ショートカットのターゲットが正しく再発見されないことがあります。アプリケーションの機能が優れている場合は、トンネリング機能が存在しなくても、タイムスタンプの作成操作は維持されます。ただし、長いファイル名は保持されません。


注意: レジストリはオペレーティング システムの非常に重要なファイルです。レジストリの編集を誤ると、オペレーティング システムが起動しなくなるなど、再セットアップを余儀なくされるような事態が発生する恐れがあります。弊社では、レジストリ エディタの編集の結果によるいかなる問題に対しても保証はいたしかねます。レジストリはお客様の責任範囲でお使いください。


  1. レジストリ エディタ (Regedt32.exe) を起動し、次のサブキーを選択します。

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
  2. [編集] メニューから [値の追加] をクリックします。
  3. 次の値を入力して、既定のキャッシュ時間の値を小さくします。

    値の名前: MaximumTunnelEntryAgeInSeconds
    データ タイプ: REG_DWORD
    値: 15 <-- 適切な値に変更する (秒単位)

    -または-


    次の値を入力して、トンネリング機能を無効にします。


    値の名前: MaximumTunnelEntries
    データ タイプ: REG_DWORD
    値: 0
  4. レジストリ エディタを終了し、Windows NT を再起動します。

関連情報

この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID
172190 (最終更新日 2000-06-13) をもとに作成したものです。


プロパティ

文書番号:172190 - 最終更新日: 2000/06/13 - リビジョン: 1

フィードバック