JPH10124367A - ファイルおよびディレクトリを変換する方法 - Google Patents

ファイルおよびディレクトリを変換する方法

Info

Publication number
JPH10124367A
JPH10124367A JP9245087A JP24508797A JPH10124367A JP H10124367 A JPH10124367 A JP H10124367A JP 9245087 A JP9245087 A JP 9245087A JP 24508797 A JP24508797 A JP 24508797A JP H10124367 A JPH10124367 A JP H10124367A
Authority
JP
Japan
Prior art keywords
file
cluster
name
far
buffer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP9245087A
Other languages
English (en)
Other versions
JPH10124367A5 (ja
Inventor
H Hans David
デビッド・エイチ・ハンス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HP Inc
Original Assignee
Hewlett Packard Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH10124367A publication Critical patent/JPH10124367A/ja
Publication of JPH10124367A5 publication Critical patent/JPH10124367A5/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operations
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operations
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/164File meta data generation
    • G06F16/166File name conversion
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operations
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1461Backup scheduling policy
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】 短いファイル名規則を利用するオペレーテ
ィング・システムから、長いファイルおよびディレクト
リ名をもつファイルを生成し、長いファイル名規則を利
用するオペレーティング・システムの障害を復旧させ
る。 【解決手段】初期化ルーチンを呼び出した後、短いファ
イル名規則を使用してファイルおよびディレクトリを生
成する。短いファイル名規則をもつ各々のディレクトリ
・エントリを、長いファイル名規則を使用して、複数の
ディレクトリ・エントリに変換する。複数のディレクト
リ・エントリは、ハードディスク上に配置される。長い
ファイル名は、これら複数のディレクトリ・エントリを
使用して実現される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、一般にオペレー
ティング・システムに関し、特に、長いファイルおよび
ディレクトリの命名規則を利用するオペレーティング・
システムの障害復旧のためのシステムおよび方法に関す
る。
【0002】
【従来の技術】テープ・バックアップ・システムは、ハ
ードディスクの破壊やコンピュータ・ウイルスによる攻
撃のようなコンピュータ・システムの故障から、データ
・ファイルおよび他の情報を保護するために提供され
る。テープ・バックアップ・システムは、このデータを
オフラインの媒体(すなわちテープ)に格納する。このデ
ータは、データ損失が起きた場合に取り出すことができ
る。従来のバックアップ・システムの一例は、米国特許
第5,276,860号のタイトル「Digital data proce
ssor with improved backup storage」の明細書に記述
される。
【0003】パソコンに関するオペレーティング・シス
テムの現在の傾向は、長いファイル名を受け入れること
である。これは、ディレクトリおよびファイルを命名す
る際にエンド・ユーザーにより多くの柔軟性を与え、よ
り説明的なファイリング・システムを供給すると考えら
れる。長いファイル命名規則を提供するオペレーティン
グ・システムは、より標準的な8.3ファイル名規則
(「短い」ファイル名と呼ばれる)をも提供する。これ
は、より新しい長いファイル名システムへの移行を容易
にするとともに、将来の開発についてさかのぼる可能性
(backward capabilities)可能性を提供する。
【0004】
【発明が解決しようとする課題】長いファイル名システ
ムに伴う問題は、障害復旧に備えるクリーンな方法がな
いということである。例えば長いファイル名規則を使用
するオペレーティング・システムは、典型的に、単一の
ブート(boot)・ディスクに収めるにはあまりに大きく複
雑である。「障害復旧」という用語は、エンド・ユーザ
ーが、ディスクの故障を経験した後、コンピュータのフ
ァイルおよびディレクトリを回復させるために使用しな
ければならないプロセスをいう。現在ではディスクの故
障が起きたとき、エンド・ユーザーは、バックアップ・
テープ上のデータにアクセスするために、バックアップ
・アプリケーションを走らせる前にまずオペレーティン
グ・システムを再インストールしなければならない。産
業上、長いファイル名規則を利用するオペレーティング
・システムについて、より効率的で迅速な障害復旧プロ
セスを供給する必要がある。
【0005】
【課題を解決するための手段】この発明の課題は、次の
方法によって解決される。
【0006】短いファイル名規則を利用する第1のシス
テムから長いファイル名規則を利用する第2のシステム
に、ファイルおよびディレクトリを変換する方法であっ
て、初期化ルーチンを呼び出すステップと、短いファイ
ル名規則を使用して少なくとも1つのファイルを生成す
るステップと、短いファイル名規則を使用して少なくと
も1つのディレクトリを生成するステップと、長いファ
イル名規則を使用して上記少なくとも1つのディレクト
リを複数のディレクトリに変換するステップと、ハード
ディスク上に上記複数のディレクトリを配置するステッ
プと、を含む。
【0007】この発明は、オペレーティング・システム
を再インストールする必要なく、オペレーティング・シ
ステムの障害を復旧する装置および方法を提供する。オ
ペレーティング・システムは、長いファイルおよびディ
レクトリ名を利用する。コンバータは、DOSまたはWindo
wsベースのプログラムが、従来の8.3ファイル名構造
を使用するシステムと長いファイルおよびディレクトリ
名を使用するシステムとの間でファイルを操作できるよ
うに提供される。コンバータに連結されるソフトウェア
・ライブラリは、8.3ファイル名システムからバック
アップ・アプリケーションを走らせることを容易にす
る。ライブラリは、8.3ファイル名システムが、長い
ファイル名規則を使用してファイルおよびディレクトリ
を生成し、それによってディスク障害から復旧すること
ができる手続きを含む。
【0008】
【発明の実施の形態】すなわちこの発明は、8.3ファ
イル名規則により特徴付けられるプログラムが、長いフ
ァイルおよびディレクトリ名を操作するのを容易にする
ためのシステムおよび方法を提供する。アプリケーショ
ン・プログラミング・インタフェース(API)は、DOSまた
はWindowsベースのプログラムが、長いファイル名規則
を使用してファイルを生成し、削除し、読み込み、書き
込みすることができるように提供される。Windowsはマ
イクロソフト社より市販されている。
【0009】図1は、この発明を取り入れている汎用デ
ジタル・コンピュータ・システム100のブロック図を示
す。処理ユニット110は、システム・バス105に接続す
る。システム・バス105は、処理ユニット110と、メモリ
120、データ記憶ディスク130、入力/出力インタフェー
ス装置140およびテープ・バックアップ・システム150と
の間の通信を容易にする。好ましい実施例で、メモリ12
0は、この発明のソフトウェアと、この発明により集め
られ、生成される全てのデータを格納する。別の好まし
い実施例では、ソフトウェアをデータ記憶ディスク130
に格納することができる。
【0010】メモリ120内のエリア125は、以下でより十
分に記述されるこの方法を格納するように設定される。
入力/出力インタフェース装置140は、バス105と、ポイ
ントおよびクリック機構142(例えばマウスまたはライト
・ペン)、表示機構144およびキーボード146との間のデ
ータ通信を制御する。好ましい実施例で、テープ・バッ
クアップ・システム150は、ヒューレット・パッカード
社から市販されているJumbo1400、Colorado T1000eおよ
びColorado T4000sテープ・ドライブを含む任意の数の
テープ・ドライブでありうる。
【0011】図2は、コンピュータ・システムから自動
的にテープ・バックアップ・システムにデータをアーカ
イブするこのシステムのブロック図を示す。スケジュー
ラ210は、制御リンク212および214を通して、自動化さ
れたバックアップ機構220を制御する。スケジューラ
は、ハードディスク230からリンク231を通して得られる
システムの状態情報を使用し、他のものの中からどの制
御信号をバックアップ機構220に送るか判断する。例え
ば、スケジューラ210が、システムの状態231に基づいて
完全なバックアップが必要であると判断する場合、ENAB
LE_FULL信号が、リンク212を通してバックアップ機構22
0に送られる。ENABLE_FULL信号により、バックアップ・
サブシステムは、テープ・バックアップ・システム150
にハードディスク230の完全なアーカイブ・コピーを作
ることができる。増分(incremantal)のバックアップが
必要なとき、ENABLE_MODIFIED信号が、リンク214を通し
て送られる。好ましい実施例で、自動化されたバックア
ップ・システムがインストールされるとき、この方法を
含む回復ディスクが生成される。
【0012】リスト・ライブラリ240に含まれる情報
は、エンド・ユーザが、テープ・バックアップ・システ
ム150にアーカイブされたデータを、ハードディスク230
に回復させることを要求するとき、どのファイルにアク
セスするか判断するために使用される。スケジューラ21
0および自動化されたバックアップ機構220は共に、例え
ば上述の機能性を備える従来のフィールド・プログラマ
ブル・ゲート・アレイ(FPGA)内の状態マシンのような、
任意の適当な論理で実現することができる。さらに両方
とも、特定用途向け集積回路(ASIC)の中で従来のASIC製
作技術を使用して実現することができる。
【0013】図3は、この発明に従うコンバータのブロ
ック図を示す。コンバータ310は、システムA301および
システムB302の間に配置される。システムA301は、従来
の8.3ファイルおよびディレクトリ名を利用し、シス
テムB302は、長いファイルおよびディレクトリ名を利用
する。好ましい実施例で、長いファイルおよびディレク
トリ名は、マイクロソフト社から入手できるWindows/95
のファイル・システムと両立できる(compatible)。Wind
ows/95のファイル・システムは、8.3ベースのファイ
ル名および長いファイル名規則の両方を支援し、既存の
FATファイル・システムのディスク形式とのさかのぼ
る(backward)両立性を維持するように実現された。(F
ATは、ファイル配置テーブル(File Allocation Tabl
e)をさす。ファイルが生成されたり、拡張されるとき、
ディスク・セクタは、「クラスタ」内のそれに割り当て
られる。クラスタは、連続するセクタの固定の数であ
る。FATは、ディスク上のすべてのクラスタについて
1つのエントリを含む。これらのエントリは、12、16、
または32ビットの長さであり、オペレーティング・シス
テムのバージョンに依存する。)長いファイル名は、後
に付く(trailing)NULL文字を含まずに、255文字まで
含むことができる。長いファイル名は、慣例的な8.3
ファイル名規則では許されない、埋め込まれるスペース
や文字(例えば:、+、;、=)を含むことができる。長いフ
ァイルおよび/またはディレクトリ名のためのパス全体
は、260文字まで可能である。長い名前は、複数のデ
ィレクトリ・エントリを使用して実現される。
【0014】「DOSLFN.LIB」ソフトウェア・ライブラリ
320は、コンバータ310に連結される。好ましい実施例
で、DOSLFN.LIBはMSC7.0コンパイラおよびMASM6.10アセ
ンブラを使用して組み立てられる。DOSLFN.LIBは、8.
3ファイル名システムが、長いファイル名規則を使用し
てファイルおよびディレクトリを生成することを可能に
する手続き(procedures)を含む。コンバータ310は、DOS
またはWindowsベースのプログラムが、システムA301か
らシステムB302にファイルおよびディレクトリを生成
し、削除し、オープンし、読み込み、書き込むことを許
す。
【0015】図4は、この発明に従う方法の全体の流れ
のフローチャートを示す。図1の要素100のようなコン
ピュータ・システムは、通常ブロック401で動作する。
判断ブロック402で、障害が起こったかどうか判断する
ために調査がなされる。壊滅的なことが何も起こってい
ない場合、ブロック401は、システムの制御を維持す
る。障害が見つかった場合、ブロック410は、復旧手続
きを初期化する。ブロック420は、まずDOSLFN.LIBに含
まれる外部のAPIを使用してファイルおよびディレクト
リを再生成する。そしてこれらのファイルおよびディレ
クトリは、DOSLFN.LIBからの内部のAPIを使用して、ブ
ロック430によって変形される。表1から表35は、こ
の発明に従う外部および内部の両方のAPIを含む。最後
に、ブロック440は、システムを回復させ、制御をブロ
ック401に返す。
【0016】図5は、この方法のより詳細なフローチャ
ートを示す。ブロック510は、初期化ルーチンdoslfn_In
itialize()を呼び出す。このルーチンは、メモリを割り
当て、変数を初期化し、ルート・ディスク・ディレクト
リのすぐ外にユニークなサブディレクトリを生成する。
このサブディレクトリは、後述されるように、ファイル
の再配置(relocate)の前にファイルおよびディレクトリ
を生成するための一時的な記憶位置として使用される。
【0017】doslfn_Initialize()が呼び出された後、
ブロック520は、8.3ファイル名規則を使用してファイ
ルおよびディレクトリを生成する。DOSLFN.LIBは、基礎
をなすDOSファイルおよびディレクトリ機能が可能であ
れば、それらの利益を得るように実現される。このよう
にブロック520は、DOS機能を利用して、8.3ファイル
名をもつファイルおよびディレクトリを生成する。これ
らの新しく生成されるファイルおよびディレクトリは、
doslfn_Initialize()によって生成される一時的なサブ
ディレクトリに格納される。
【0018】ブロック530は、長いファイル名規則を使
用して、各々の8.3ディレクトリ・エントリを複数の
ディレクトリ・エントリに変換する。長いファイル名の
ディレクトリ・エントリが生成されると、ブロック540
は、複数のディレクトリ・エントリが属する長いパスを
反映するように、これらのエントリをディスク上の正し
い位置に再配置する。これは、所望のパスを個々のパス
要素に分割し、それらの関連するディレクトリ・エント
リを探索することにより各々のパス要素を配置すること
によって実現される。例えば、ファイル「\A\B\C\a
long filename」を格納する必要があると仮定する。こ
の方法は、これを、パス「\A\B\C\」およびファイ
ル「a long filename」という2つの基礎的な要素に分
割する。更新されるクラスタ数は、長いファイルおよび
ディレクトリ名エントリが置かれるべき宛先クラスタを
判断するように維持される。そして各々のステップは、
回復される必要がある各々のファイルが回復されるまで
繰り返される。
【0019】外部API定義
【表1】 WORD far doslfn_Initialize (drive_number) char drive_number; パラメータ: drive_number DOSLFNライブラリが長い名前を生成する/操作するドラ
イブ番号を識別する。ドライブA:=0,B:=1等。 リターン値:成功した場合、リターン値はSUCCESS(00h)
であり、そうでない場合、ゼロでない値が返される。有
効なリターン値は以下の通りである。 SUCCESS 0x0 関数(function)は成功した。 GENERAL ERROR 0xFF 関数は失敗した。 コメント:初期化ルーチンは、他のDOSLFN APIの呼出し
を行う前に、一度アプリケーションによって呼び出され
なければならない。このルーチンは、メモリを割り当
て、指定されるドライブについてディスク・パラメータ
を読み込む。
【0020】
【表2】 WORD far doslfn_Terminate (void) パラメータ:なし。 リターン値:成功した場合、リターン値はSUCCESS(00h)
であり、そうでない場合、ゼロでない値が返される。有
効なリターン値は以下の通りである。 SUCCESS 0x0 関数は成功した。 GENERAL_ERROR 0xFF 関数は失敗した。 コメント:この終了ルーチンは、DOSLFNサービスを終了
するために、一度アプリケーションによって呼び出され
なければならない。これは、メモリを解放(de-allocat
e)し、他の一般のクリーンアップ・タスクを実施する機
会を、DOSLFNライブラリに与える。
【0021】
【表3】 WORD far doslfn_MakeDirectory (full_path, short_na
me) char far *full_path; char far *short_name; パラメータ: full_path ディレクトリが生成されるべきパス全体へのファー(fa
r)・ポインタ。一度に1つのディレクトリのみ生成する
ことができ、従ってfull_pathの最後の構成要素のみが
新しいディレクトリを命名することができる。 short_name 生成される長いサブディレクトリに関連する短い(DOS8.
3)ファイル名のASCIIZへのファー・ポインタ。short_na
meポインタがNULL(0x0)である場合、短い名前は自動生
成される。この自動生成の機能は、ここでの障害復旧ア
プリケーションには使用されない。自動生成ルールは、
完全には実現されない。 リターン値:成功した場合、リターン値はsuccess(00h)
であり、そうでない場合、ゼロでない値が返される。有
効なリターン値は、以下の通りである。 SUCCESS 0x0 関数は成功した。 ERROR_PATH_NOT_FOUND 0x3 パスの中のある要素が
存在しない。 ERROR_ACCESS_DENlED 0x5 指定されたサブディレ
クトリは既に存在する。 ERROR_WRITE_FAULT 0x1D ディスクへの書込にエ
ラーが生じた。 ERROR_READ_FAULT 0x1E ディスクからの読込に
エラーが生じた。 GENERAL_ERROR 0xFF 関数は失敗した。 コメント:この関数は、指定されるサブディレクトリを
生成する。このサブディレクトリ名は、 Windows/95デ
ィレクトリ命名ルールに従う。
【0022】
【表4】 WORD far doslfn_CreateFile (full_path,short_name,a
ttributes,handle) char far *full_path; char far *short_name; WORD attributes; WORD far *handle; パラメータ: full_path このファイルが生成されるべきパス全体へのファー・ポ
インタ。複数のサブディレクトリを用いてパスを指定す
る場合、サブディレクトリ構造のそれぞれの要素は、こ
の呼出しについて成功であることを示し、そうでない場
合、エラーが返される。 short_name 生成される長いファイル名に関連するASCIIZの短い(DOS
8.3)ファイル名へのファー・ポインタ。short_nameポ
インタがNULL(0x0)の場合、短い名前が自動生成され
る。この自動生成の機能は、ここでの障害復旧アプリケ
ーションには使用されないことに留意されたい。自動生
成ルールは、完全には実現されない。 attribute ファイルに関連する以下の1つまたは複数のファイル属
性を含む。 0x00 - 通常のファイル 0x01 - 読込専用ファイル 0x02 - 隠しファイル 0x04 - システム・ファイル 0x20 - アーカイブ・ファイル handle このパラメータは入力時には使用されない。新しく生成
されるファイルからファイル・ハンドル(handle)を受け
取る、標示されない(unsigned)整数へのファー・ポイン
タである。このハンドルは、ファイルを読み込みおよび
/または書き込むためのCランタイム・ライブラリ・ル
ーチンへのパラメータとして使用することができる。 リターン値:成功した場合、リターン値はSUCCESS(00h)
であり、そうでない場合、ゼロでない値が返される。有
効なリターン値は、以下の通りである。 SUCCESS 0x0 関数は成功した。 ERROR_PATH_NOT_FOUND 0x3 パスの中のある要素が
存在しない。 ERROR_WRITE_FAULT 0x1D ディスクへの書込にエ
ラーが生じた。 ERROR_READ_FAULT 0x1E ディスクからの読込に
エラーが生じた。 GENERAL_ERROR 0xFF 関数は失敗した。 コメント:この関数は、指定されたファイルが存在しな
い場合、それを生成する。ファイルがすでに存在する場
合、ファイルは開かれ、その内容が上書きされる。(こ
の関数は、dos_creat()の動作とは異なることに留意さ
れたい。ファイルがすでに存在する場合、dos_creat()
は失敗する。)この関数は、読込/書込、setftime等のフ
ァイル・ハンドルを受け取るCランタイム・ライブラリ
やDOS関数と両立できるファイルにハンドルを返す。ful
l_pathの最後のファイル名は、Windows/95ファイル命名
ルールに従う。 注: アプリケーションは、doslfn_CloseFile()を用いて
生成されたファイルを閉じるために、doslfn_CloseFile
()を使用しなければならない。これがなされなければ、
長いファイル名情報は、適切にディスクに格納されな
い。
【0023】
【表5】 WORD far doslfn_CloseFile (handle) WORD handle; パラメータ: handle 閉じるためのファイル・ハンドルを識別する。これは、
doslfn_CreateFile()呼出しから返されるファイル・ハ
ンドルである。 リターン値:成功した場合、リターン値はSUCCESS(00h)
であり、そうでない場合、ゼロでない値が返される。有
効なリターン値は、以下の通りである。 SUCCESS 0x0 関数は成功した。 ERROR_WRITE_FAULT 0x1D ディスクへの書込にエラ
ーが生じた。 ERROR_READ_FAULT 0x1E ディスクからの読込にエ
ラーが生じた。 GENERAL_ERROR 0xFF 関数は失敗した。 コメント:この関数は、doslfn_CreateFile()呼出しか
ら生成されたオープン・ファイルを閉じる。
【0024】
【表6】 WORD far doslfn_DeleteFile (full_path) char far *full_path; パラメータ: full_path 削除されるファイルのパス全体へのファー・ポインタ。
複数のサブディレクトリをもつパスを指定する場合、サ
ブディレクトリ構造の各々の要素は、この呼出しが成功
であることを表し、そうでない場合、エラーが返され
る。 リターン値:成功した場合、リターン値はSUCCESS(00h)
であり、そうでない場合、ゼロでない値が返される。有
効なリターン値は、以下の通りである。 SUCCESS 0x0 関数は成功した。 ERROR_FILE_NOT_FOUND 0x2 指定されるファイルが
存在しない。 ERROR_PATH_NOT_FOUND 0x3 パスの中のある要素が
存在しない。 ERROR_WRITE_FAULT 0x1D ディスクへの書込にエ
ラーが生じた。 ERROR_READ_FAULT 0x1E ディスクからの読込に
エラー生じた。 GENERAL_ERROR 0x1FF 関数は失敗した。 コメント:この関数は、指定されるファイルを削除す
る。full_pathの終わりのファイル名は、Windows/95の
ファイル命名ルールに従わなければならない。
【0025】
【表7】 WORD far doslfn_SetAttribute (full_path, attribut
e) char far *full_path; WORD attribute; パラメータ: full_path 属性を修正すべきファイルまたはサブディレクトリを指
定するパス全体へのファー・ポインタ。複数のディレク
トリを用いてパスを指定する場合、サブディレクトリ構
造の各々の要素は、この呼出しが成功であることを表
し、そうでない場合、エラーが返される。 attribute ファイルに関連する1つまたは複数の以下のファイル属
性を含む。 0x00 - 通常 0x01 - 読込専用 0x02 - 隠し 0x04 - システム 0x20 - アーカイブ リターン値:成功した場合、リターン値はSUCCESS(00h)
であり、そうでない場合、ゼロでない値が返される。有
効なリターン値は、以下の通りである。 SUCCESS 0x0 関数は成功した。 ERROR_FILE_NOT_FOUND 0x2 指定されたファイル
が存在しない。 ERROR_PATH_NOT_FOUND 0x3 パスの中のある要素
が存在しない。 ERROR_WRITE_FAULT 0x1D ディスクへの書込に
エラーが生じた。 ERROR_READ_FAULT 0x1E ディスクからの読込
にエラーが生じた。 GENERAL_ERROR 0xFF 関数は失敗した。 コメント:この関数は、指定されたファイルまたはサブ
ディレクトリの属性を修正する。full_pathの終わりの
ファイル/サブディレクトリ名は、Windows/95のファイ
ル命名ルールに従わなければならない。
【0026】
【表8】 WORD far doslfn_FindFile (full_path, attributes) char far *full_path; FILE_ATTRIBUTE far *file_attributess; パラメータ: full_path 配置するファイル/サブディレクトリのパス全体へのフ
ァー・ポインタ。ファイルが存在しない場合、ERROR_FI
LE_NOT_FOUNDが返される。複数のサブディレクトリを用
いてパスを指定する場合、サブディレクトリ構造の各々
の要素は、この呼出しが成功であることを表し、そうで
ない場合、ERROR_PATH_NOT_FOUNDが返される。そのファ
イル/サブディレクトリが存在する場合、属性の構造は
満たされる。 file_attributes 以下の構造へのファー・ポインタ。 typedef struct FILE_ATTRIBUTE_STRUCT{ unsigned char 属性; DWORD 大きさ; WORD 日付; WORD 時間; } FILE_ATTRIBUTE; 関数の呼出しが成功した場合、構造は満たされ、そうで
ない場合、満たされない。フィールドは、以下の意味を
もつ。 attributes ファイルと関連する以下の1つまたは複数のファイル属
性を含む。 0x00 - 通常 0x01 - 読込専用 0x02 - 隠し 0x04 - システム 0x20 - アーカイブ size 標示されない長さであり、ファイルの大きさをバイトで
含む。 date 以下の形式をもつ16ビットの値。 ビット 0-4: 月の日付(1-31) ビット 5-8: 月(1= 1月、2= 2月等) ビット 9-15: 1980からの年のオフセット(1980を足し
て実際の年を求める) time 以下の形式をもつ16ビットの値。 ビット 0-4: 2で割った秒 ビット 5-10: 分(0-59) ビット 11-15: 時間(24時間の時計で0-23) リターン値:成功した場合、リターン値はSUCCESS(00h)
であり、そうでない場合、ゼロでない値が返される。有
効なリターン値は、以下の通りである。 SUCCESS 0x0 関数は成功した。 ERROR_FILE_NOT_FOUND 0x2 指定されたファイルは
存在しない。 ERROR_PATH_NOT_FOUND 0x3 パスの中のある要素が
存在しない。 ERROR_WRITE_FAULT 0x1D ディスクへの書込にエ
ラーが生じた。 ERROR_READ_FAULT 0x1E ディスクからの読込に
エラーが生じた。 GENERAL_ERROR 0xFF 関数は失敗した。 コメント:この関数は、指定されるファイル/サブディ
レクトリが存在する場合、ファイル構造が満たされるか
どうか判断する。そうでない場合、エラーが返される。
full_pathの終わりのファイル名は、Windows/95のファ
イル命名ルールに従う。
【0027】内部API定義
【表9】 WORD far doslfn_ReadSectors (drive_number, startin
g_sector, number_sectors, buffer) char drive_number; DWORD starting_sector; int number_sectors; char far *buffer; パラメータ: drive_number セクタを読み込むドライブ番号を識別する。ドライブA:
=0、B:=1等。 starting_sector 読み込み始める開始の論理セクタ番号。 number_sectors 読み込むセクタの数を指定する。 buffer データを読み込むバッファへのファー・ポインタ。この
バッファが、要求されるセクタのすべてを保有するに十
分な大きさであることを保証するのは、呼び出し元の責
任である。 リターン値:成功した場合、リターン値はSUCCESS(00h)
であり、そうでない場合、ゼロでない値が返される。有
効なリターン値は、以下の通りである。 SUCCESS 0x0 関数は成功した。 ERROR_READ_FAULT 0x1E ディスクからの読込に
エラーが生じた。 GENERAL_ERROR 0xFF 関数は失敗した。 コメント:呼出し元は、渡されるバッファが保有するに
十分な大きさであることを保証しなければならない(num
ber_sectors*セクタあたりのバイト数)。これは、論理
セクタを読み込むためにInt 25hを使用する。新しいFAT
-32ファイル・システムの場合、この関数は、新しいExt
_ABSDiskReadWrite関数(INT 21h, AX=7305h)を使用す
る。
【0028】
【表10】 WORD far doslfn_WriteSectors(drive_number,starting
_sector,number_sectors,fat32_hint,buffer) char drive_number; DWORD starting _sectors; int number_sectors; WORD fat32_hint; char far *buffer; パラメータ: drive_number セクタを書き込むドライブ番号を識別する。ドライブA:
=0、B:=1等。 starting_sector 書き込み始める開始の論理セクタ番号。 number_sector 書き込むセクタの数を指定する。 fat32_hint FAT32ファイル・システムの実現に関してのみ使用され
る。これは、書き込まれるデータのタイプを指定する。
可能な選択は次の通りである。 FA32_HINT_UNKNOWN データ・タイプは未知であ
る。 FA32_HINT_FAT_DATA FATデータ FA32_HINT_DIR_DATA ディレクトリ・データ FA32_HINT_NORMAL_DATA 通常のファイル・データ FA32_HINT_RESERVED 予約済み buffer 書き込むデータを含むバッファへのファー・ポインタ。
このバッファが、全ての要求されるセクタを書き込むに
十分なデータを含むことを保証するのは、呼出し元の責
任である。 リターン値:成功した場合、リターン値はSUCCESS(00h)
であり、そうでない場合、ゼロでない値が返される。有
効なリターン値は以下の通りである。 SUCCESS 0x0 関数は成功した。 ERROR_READ_FAULT 0x1E ディスクからの読込にエラ
ーが生じた。 GENERAL_ERROR 0xFF 関数は失敗した。 コメント:この関数は、論理セクタを書き込むためにIn
t 26hを使用する。新しいFAT-32ファイル・システムの
場合、この関数は、新しいExt_ABSDiskReadWrite関数(I
NT 21h,AX=7305h)を使用する。
【0029】
【表11】 WORD far doslfn_ReadCluster (drive_number, startin
g_cluster, buffer) char drive_number; CLUSTER starting_cluster; char far *buffer; パラメータ: drive_number クラスタを読み込むドライブ番号を識別する。ドライブ
A:=0、B:=1等。 starting_cluster 読み込む論理クラスタ番号。 buffer 指定されたクラスタ・データで満たすバッファへのファ
ー・ポインタ。このバッファがクラスタ全体を保持する
に十分な大きさであることを保証するのは呼び出し元の
責任である。 リターン値:成功した場合、リターン値はSUCCESS(00h)
であり、そうでない場合、ゼロでない値が返される。有
効なリターン値は以下の通りである。 SUCCESS 0x0 関数は成功した。 ERROR_READ_FAULT 0x1E ディスクからの読込にエラ
ーが生じた。 GENERAL_ERROR 0xFF 関数は失敗した。 コメント:この関数は、1つのクラスタを含む適当なセ
クタの数を読み込むためにdoslfn_ReadSectorsを使用す
る。呼出し元は、渡されるバッファがデータ1クラスタ
分を保有するに十分な大きさであることを保証しなけれ
ばならない。
【0030】
【表12】 WORD far doslfn_WriteCluster(drive_number, startin
g_cluster, fat32_hint,buffer) char drive_number; CLUSTER starting_cluster; WORD fat32_hint; char far *buffer; パラメータ: drive_number 書き込もうとするドライブ番号を識別する。ドライブA:
=0、B:=1等。 starting_cluster 書き込む論理クラスタ番号。 fat32_hint FAT32ファイル・システムの実現のためにだけ使用され
る。これは、書き込まれるデータのタイプを指定する。
可能な選択は以下の通りである。 FAT32_HINT_UNKNOWN データは未知である。 FAT32_HINT_FAT_DATA FATデータである。 FAT32_HINT_DIR_DATA ディレクトリ・データであ
る。 FAT32_HINT_NORMAL_DATA 通常のファイル・データで
ある。 FAT32_HINT_RESERVED 予約済み。 buffer 書き込むデータを含むバッファへのファー・ポインタ。
このバッファが、クラスタ全体を満たすに十分なデータ
を含むことを保証するのは、呼出し元の責任である。 リターン値:成功した場合、リターン値はSUCCESS(00h)
であり、そうでない場合ゼロでない値が返される。有効
なリターン値は以下の通りである。 SUCCESS 0x0 関数は成功した。 ERROR_WRITE_FAULT 0x1D ディスクへの書込にエラ
ーが生じた。 GENERAL_ERROR 0xFF 関数が失敗した。 コメント:この関数は、1クラスタを含む適当な数のセ
クタを書き出すためにdoslfn_WriteSectorsを使用す
る。呼出し元は、渡されるバッファがデータの1クラス
タ分を含むことを保証しなければならない。
【0031】
【表13】 WORD far doslfn_UseNewDiskAPI(void) パラメータ:なし リターン値:オペレーティング・システムが新しい Dis
k I/O APIを支援する場合、リターン値はTRUE(01h)であ
り、それが新しい Disk I/O APIを支援しない場合、FAL
SE (00h)が返される。 コメント:このルーチンは、連続するDisk I/O呼出しが
新しいAPI(Int 21h/7305h)を使用すべきか、古いInt 25
h/Int 26h APlを使用するか判断するために使用され
る。新しいバージョンのWindows 95は、古いInt 25h/In
t 26h APlを無効にするので、コードは、両方のインタ
ーフェースを支援しなければならない。このルーチン
は、最初に新しいほうのInt 2lh/7305hを試す。エラー
が返されない場合、すべてのDisk I/Oがこの新しいイン
ターフェースを使用することを示すフラグを設定する。
エラーが返された場合、古いほうのInt 25h/Int 26hを
使用する。
【0032】
【表14】 WORD far doslfn_LockDrive (drive_number) char drive_number; パラメータ: drive_number ロックするドライブ番号を識別する。ドライブA:=1, B:
=2等。 リターン値:成功した場合、リターン値はSUCCESS(00h)
であり、そうでない場合、ゼロでない値が返される。有
効な値は次の通りである。 SUCCESS 0x0 ドライブは成功してロックさ
れた。 GENERAL_ERROR 0xFF 関数は失敗した。ドライブは
ロックされない。 コメント:このルーチンは、オペレーティング・システ
ムに「ロック論理ボリューム」呼出しを発行するために
呼び出される。これが実施されない場合、DOSのWindows
/95バージョンは、ユーザーにエラー・メッセージを出
し、システムを停止させる。呼出し元がこのドライブに
低レベルI/Oを行うことを終える場合、doslfn_UnlockDr
ive()への呼出しが行われる。
【0033】
【表15】 WORD far doslfn_UnlockDrive(drive_number) char drive_number; パラメータ: drive_number ロックを外すドライブ番号を識別する。ドライブA:=1、
B:=2等。 リターン値:成功した場合、リターン値はSUCCESS(00h)
であり、そうでない場合、ゼロでない値が返される。有
効なリターン値は次の通りである。 SUCCESS 0x0 ドライブは成功してロックを
外された。 GENERAL_ERROR 0xFF 関数は失敗し、ドライブはロ
ックされたままである。 コメント:このルーチンは、doslfn_LockDrive()関数に
相対するものである。このルーチンは、オペレーティン
グ・システムに「ロック解除論理ボリューム」呼出しを
発行する。このルーチンは、doslfn_LockDrive()が呼び
出された後に呼び出される。さらに、このルーチンが呼
び出された後、低レベルのDisk I/Oルーチンは呼び出さ
れることができないことに留意することが重要である。
これらのルールに従うことに失敗すると、オペレーティ
ング・システムは、ユーザーにエラーメッセージを表示
し、システムを停止する。
【0034】
【表16】 WORD far doslfn_ReadBPB (drive_number) char drive_number; パラメータ: drive_number BIOSパラメータ・ブロックを読み込むドライブ番号を識
別する。ドライブA:=0, B:=1等。 リターン値:成功した場合、リターン値はSUCCESS(00h)
であり、そうでない場合、ゼロでない値を返す。有効な
リターン値は次の通りである。 SUCCESS 0x0 関数は成功した。 ERROR_READ_FAULT 0x1E ディスクからの読込にエ
ラーが生じた。 GENERAL_ERROR 0xFF 関数は失敗した。 コメント:この関数は、指定されたドライブのBIOSパラ
メータ・ブロック(BPB)を読み込み、コードを通して使
用される包括的な変数を設定するためにその値を使用す
る。このルーチンは、doslfn_Initialize()ルーチンに
よって呼び出される。
【0035】
【表17】 WORD far doslfn_ReadDPB (drive_number, dpb_buffer,
dpb_buffer_size) char drive_number; DPB far *dpb_buffer; WORD dpb_buffer_size; パラメータ: drive_number ドライブ・パラメータ・ブロックを読み込む元のドライ
ブ番号を識別する。ドライブA:=0、B:=1等。 dpb_buffer このルーチンが、指定されるドライブのDPB情報を入れ
るバッファへのファー・ポインタ。このバッファがDPB
を保持するに十分な大きさであることを保証すること
は、呼出し元の責任である。指定されたドライブがFAT3
2システムである場合、DPBはFAT16DPBより大きいことに
留意されたい。 dpb_buffer_size dpb_bufferの大きさを(バイトで)指定する。このルーチ
ンは、この数のバイトだけdpb_bufferに入れる。 リターン値:成功した場合、リターン値はSUCCESS(00h)
であり、そうでない場合、ゼロでない値が返される。有
効なリターン値は次の通りである。 SUCCESS 0x0 関数は成功した。 GENERAL_ERROR 0xFF 関数は失敗した。 コメント:この関数は、指定されたドライブの「ドライ
ブ・パラメータ・ブロック」(DPB)を読み込み、その値
を、コードを通して使用される包括的な変数を設定する
ために使用する。このルーチンは、doslfn_Initializ
e()によって呼び出される。
【0036】
【表18】 WORD far doslfn_SearchForShortElement(drive_numbe
r, filename, buffer,cluster, dir_cluster, userptr,
buffer_damaged) char drive_number; char far *filename; SHORT_DIR_ENTRY far *buffer; CLUSTER far *cluster; CLUSTER far *ir_cluster; SHORT_DIR_ENTRY far *far *userptr; WORD far *buffer_damaged; パラメータ: drive_number 探索(search)関数が行われるドライブ番号を識別する。
ドライブA:=0、B:=1等。 filename 探索するファイル名(またはパス要素)。これはパス全体
ではなく、8.3ファイル名だけである。パス全体を個
々のパス要素に解析するのは呼出し元の責任であるの
で、全体のパスを把握する必要はなく、そのディレクト
リ・エントリおよびクラスタ番号を配置するために各々
の要素についてこのルーチンを呼び出す。 buffer 探索するディレクトリ・エントリの初期設定を含むバッ
ファへのポイント。このルーチンが次のクラスタを読み
込むとき(FAT割当てチェインをたどるとき)、このバッ
ファの内容が修正される。このバッファが1つの完全な
クラスタを保持するに十分な大きさであることを保証す
るのは、呼出し元の責任である。 cluster 探索を始めるクラスタ番号(bufferを満たすために使用
したのと同一のクラスタ)へのファー・ポインタ。この
ルーチンが次のクラスタを読み込むとき(FAT割当てチェ
インをたどるとき)、このクラスタ番号は修正される。 dir_cluster 終了時に、指定されるfilenameのためのディレクトリ・
エントリを含むクラスタ番号に設定される変数へのファ
ー・ポインタ。これは、指定されるfilenameの最初のDA
TAクラスタを含む上記のclusterパラメータとは異なる
ことに留意されたい。 userptr 呼出し元のファー・ポインタへのファー・ポインタ。こ
のパラメータは、入力時には使用されない。終了時、そ
れは、合致が生じるbufferの適当なポイントを指すよう
に調節される。エラーが生じた場合、この値は定義され
ず、アクセスすることができない。 buffer_damaged 終了時、bufferの内容がダメージを受けたかどうか示す
変数へのファー・ポインタ。TRUE(0x1)に設定される場
合、bufferの内容はダメージを受けており、FALSE(0x0)
は、bufferがオリジナルのclusterの値の内容を持つこ
とを示す。 リターン値:成功した場合、リターン値はSUCCESS(00h)
であり、そうでない場合、ゼロでない値が返される。有
効なリターン値は次の通りである。 SUCCESS 0x0 関数は成功した。 ERROR_READ_FAULT 0x1E ディスクからの読込にエラ
ーが生じた。 GENERAL_ERROR 0xFF 関数は失敗した。 コメント:この関数は、bufferに含まれるディレクトリ
・エントリを探索し、短い(8.3)filenameを調べる。合
致するものが見つかった場合、userptrは、ディレクト
リ・エントリが始まるバッファ内のスポットを指すよう
に更新される。合致するものが見つからない場合、呼出
し元にエラーが返される。このルーチンが、その探索中
にFAT割当てチェインをたどるとき、それはbufferの内
容を修正する。これが起こる場合、buffer_damagedフラ
グはTRUE(0x1)に設定される。
【0037】
【表19】 WORD far doslfn_SearchForLongElement(drive_number,
filename,buffer,cluster, userptr) char drive_number; char far *filename; LONG_DIR_ENTRY far *buffer; CLUSTER far *cluster; CLUSTER far *dir_cluster; LONG_DIR_ENTRY far *far *userptr; WORD far *cluster_spanned; CLUSTER far *spanned_cluster_number; WORD far *buffer_damaged; パラメータ: drive_number 探索(search)関数が行われるドライブ番号を識別する。
ドライブA:=0,B:=1等。 filename 探索するファイル名(またはパス要素)。これはパス全体
ではなく、長い名前だけである。パス全体を個々のパス
要素に解析するのは呼出し元の責任であるので、全体の
パスを把握する必要はない。そのディレクトリ・エント
リおよびクラスタ番号を配置するために、各々の要素に
ついてこのルーチンを呼び出す。 buffer 探索するディレクトリ・エントリの初期設定を含むバッ
ファへのポイント。このルーチンが次のクラスタを読み
込むとき(FAT割当てチェインをたどるとき)、このバッ
ファの内容は修正されうる。このバッファが1つの完全
なクラスタを保持するに十分な大きさであることを保証
するのは、呼出し元の責任である。 cluster 探索を始めるクラスタ番号(bufferを満たすために使用
したのと同一のクラスタ)へのポインタ。このルーチン
が次のクラスタを読み込むとき(FAT割当てチェインをた
どるとき)、このクラスタ番号は修正されうる。 dir_cluster 終了時に、指定されたfilenameについてディレクトリ・
エントリを含むクラスタ番号が設定される変数へのファ
ー・ポインタ。これは、指定されるfilenameの最初のDA
TAクラスタを含む上記のclusterパラメータとは異なる
ことに留意されたい。 userptr 呼出し元のファー・ポインタへのファー・ポインタ。こ
のパラメータは、入力時には使用されない。終了時、そ
れは、合致が生じるbuffer内の適当なポイントを指すよ
うに調節される。エラーが生じた場合、この値は定義さ
れず、アクセスされることはない。 cluster_spanned 終了時、指定されるfilenameがディレクトリ・エントリ
の1クラスタ分より多くにまたがるかどうか示す変数へ
のファー・ポインタ。TRUE(0x1)に設定される場合、fil
enameを組み立てるディレクトリ・エントリは、クラス
タの境界を横切る。この場合、spanned_cluster_number
パラメータは、filenameについて部分的なディレクトリ
・エントリを含むクラスタ番号に設定される。FALSE(0x
0)は、filenameが、clusterパラメータによって指定さ
れたクラスタに完全に適合することを示す。 spanned_cluster_number ディレクトリ・エントリの第2のクラスタのクラスタ番
号を含む変数へのファー・ポインタ。cluster_spanned
パラメータがTRUE(0x1)に設定される場合、filenameに
ついてのディレクトリ・エントリは、1クラスタより多
くにまたがる。spanned_cluster_numberパラメータは、
ディレクトリ・エントリの第2のクラスタのクラスタ番
号に設定される。cluster_spannedがFALSE(0x0)である
場合、このパラメータは定義されない値をもつ。 buffer_damaged 終了時、bufferの内容がダメージを受けたかどうか示す
変数へのファー・ポインタ。TRUE(0x1)に設定される場
合、bufferの内容はダメージを受けており、FALSE(0x0)
であれば、bufferがオリジナルのclusterの値の内容を
持つことを示す。 リターン値:成功した場合、リターン値はSUCCESS(00h)
であり、そうでない場合、ゼロでない値が返される。有
効なリターン値は次の通りである。 SUCCESS 0x0 関数は成功した。 ERROR_READ_FAULT 0x1E ディスクからの読込にエラ
ーが生じた。 GENERAL_ERROR 0xFF 関数は失敗した。 コメント:この関数は、bufferに含まれるディレクトリ
・エントリを探索し、filenameで指定される長い名前を
調べる。合致するものが見つかった場合、userptrは、
ディレクトリ・エントリが始まるバッファ内のスポット
を指すように更新される。合致するものが見つからない
場合、呼出し元にエラーが返される。このルーチンが、
探索中にFAT割当てチェインをたどる場合、それはbuffe
rの内容を修正する。これが生じる場合、buffer_damage
dフラグは、TRUE(0x1)に設定される。
【0038】
【表20】 WORD far doslfn_LongNameToDirEntry (path,long_file
_name,short_file_name,buffer, name_filled) char far *path; char far *long_file_name; char far *short_file_name; LONG_DIR_ENTRY far *buffer; WORD far *num_filled; パラメータ: path このファイルが存在するパス全体へのファー・ポイン
タ。このパスは、ファイル名を含まない。ここでこのパ
スは、関連する短い8.3ファイル名を自動生成する際
に使用されるだけである。この機能性は必要とされず、
このパラメータは放棄されうる。 long_file_name ディレクトリ・エントリに変換される必要がある長いフ
ァイル名へのファー・ポインタ。この長い名前から生成
されるディレクトリ・エントリは、bufferに入れられ
る。 short_file_name long_file_nameに関連するASCIIZの短い(DOS 8.3)ファ
イル名へのファー・ポインタ。short_file_nameポイン
タがNULL(0X0)である場合、短い名前は自動生成され
る。この自動生成の機能は、ここでの障害復旧アプリケ
ーションには使用されないことに留意されたい。自動生
成ルールは、完全には実現されない。 buffer バッファへのファー・ポインタ。このパラメータは入力
時には使用されない。このルーチンは、long_file_name
を使用し、それを、Windows/95と両立できる一連のディ
レクトリ・エントリに変換する。 num_filled 標示されないintへのポインタ。このパラメータは入力
時には使用されない。このルーチンは、標示されないin
tを、bufferに格納されるバイトの数で満たす。 リターン値:成功した場合、リターン値はSUCCESS(00h)
であり、そうでない場合、ゼロでない値が返される。有
効なリターン値は次の通りである。 SUCCESS 0x0 関数は成功した。 ERROR_READ_FAULT 0x1E ディスクからの読込にエラ
ーが生じた。(このエラーは、短い名前の自動生成が使
用された場合のみ生じる。) GENERAL_ERROR 0xFF 関数は失敗した。 コメント:このルーチンは、指定されるlong_file_name
を取得し、それを1またはそれ以上のディレクトリ・エ
ントリに変換する(それは、パラメータとして、渡され
るbufferにこれらのディレクトリ・エントリを入れ
る)。このルーチンは、呼出し元が名前全体を保持する
に十分な大きさのbufferを割当てたと仮定する。最長の
「長い名前」は256バイトであり、それは単一コード
(unicode)空間の512バイトである。各々の「長い名
前」のディレクトリ・エントリは、13の単一コード文
字を保有する。それゆえ最長の名前は、40ディレクト
リ・エントリを費やす。40ディレクトリ・エントリは
1280バイトを費やすので、(Microsoft社が、256
文字より長い名前を扱うために、長いファイル名の仕様
を拡張しない限り)このサイズのバッファは十分な大き
さである。
【0039】
【表21】 WORD far doslfn_DirEntryToLFN LONG_DIR_ENTRY far *buffer; char far *long_file_name; パラメータ: buffer 一連の長い名前のディレクトリ・エントリを含むバッフ
ァへのファー・ポインタ。このルーチンは、バッファ内
のディレクトリ・エントリを検査し、長い名前のASCIIZ
表現を復元し、結果をlong_file_name列(string)に格納
する。 long_file_name buffer内のディレクトリ・エントリに格納された長い名
前のASCIIZ表現を保有する列へのファー・ポインタ。こ
の列が、長い名前全体を保有するに十分な大きさである
ことを保証するのは、呼出し元の責任である。 リターン値:成功した場合、リターン値はSUCCESS(00h)
であり、そうでない場合、ゼロでない値が返される。有
効なリターン値は次の通りである。 SUCCESS 0x0 関数は成功した。 GENERAL_ERROR 0xFF 関数は失敗した。 コメント:このルーチンは、指定されるbufferを取得
し、それを、一連のディレクトリ・エントリから長い名
前のASCIIZ表現へ変換し戻す。このASCIIZ表現は、long
_file_name列に格納される。このルーチンは、呼出し元
が完全な長い名前を保有するに十分な大きさの列を割当
てたと仮定する。261という列の長さは、最長の可能
な名前を保有するに十分である。
【0040】
【表22】 WORD far doslfn_NumberDirEntries (long_file_name) char far *long_file_name パラメータ: long_file_name 長いファイルまたはディレクトリ名へのポインタ。この
名前は、ASCIIZ形式でなければならない。 リターン値:リターン値は、指定されたlong_file_name
を保有するために必要とされるディレクトリ・エントリ
の数である。 コメント:このルーチンは、指定されるlong_file_name
を取得し、長い名前を格納するために、連続する32バ
イトのディレクトリ・エントリがいくつ必要であるか判
断する。この関数は、すべての長い名前の後に短い(8.
3)ディレクトリ・エントリが続かなければならないこと
を考慮に入れる。それゆえ、返される数は、長いディレ
クトリ・エントリの数に、短い名前を保有するための追
加のディレクトリ・エントリを足したものである。
【0041】
【表23】 SHORT_DIR_ENTRY far *doslfn_FindSequentialDirector
yEntry(drive_number,num_entries_needed,cluster,clu
ster_spanne,new_cluster) char drive_number; WORD num_entries_needed; CLUSTER cluster; WORD far *cluster_spanned; CLUSTER far *new_cluster; パラメータ: drive_number 空いているディレクトリ・エントリのブロックを探索す
るドライブ番号を識別する。ドライブA:=0、B:=1等。 num_entries_needed 割り当てるべき連続するディレクトリ・エントリの数を
含む。 cluster 探索を始めるクラスタ番号へのポインタ(このクラスタ
のデータはcluster_bufferに読み込まれていると仮定す
る)。このルーチンは、その探索中にFAT割当てチェイン
をたどるとき、cluster_bufferの内容とclusterを修正
することができる。 cluster_spanned 終了時、指定されるfilenameが、ディレクトリ・エント
リの1クラスタ分より多くにまたがるか示す変数へのポ
インタ。TRUE(0x1)に設定される場合、filenameを組み
立てるディレクトリ・エントリは、クラスタの境界を横
切る。この場合、spanned_cluster_numberパラメータは
filenameの部分的なディレクトリ・エントリを含むクラ
スタ番号に設定される。FALSE(0x0)は、filenameがclus
terパラメータによって指定されるクラスタに完全に適
合することを示す。 new_cluster 終了時、ディレクトリ・エントリの第2のクラスタのク
ラスタ番号を含む変数へのファー・ポインタ。cluster_
spannedパラメータがTRUE(0x1)に設定される場合、file
nameについてのディレクトリ名は、1クラスタより多く
にまたがる。new_clusterパラメータは、ディレクトリ
・エントリの第2のクラスタのクラスタ番号に設定され
る。cluster_spannedがFALSE(0x0)である場合、このパ
ラメータは定義されない値をもつ。 リターン値:num_entries_neededの大きさのブロックが
見つかった場合、リターン値は、cluster_bufferへのフ
ァー・ポインタである。エラーが生じた場合、このポイ
ンタはNULL(0x0)である。 コメント:このルーチンは、cluster_bufferに見られる
ディレクトリ・エントリを探索し、連続する数のディレ
クトリ・エントリ(num_entries_neededで指定される)を
調べる。cluster_bufferの内容とcluster番号の両方
は、それらがFAT割当てチェインの後にくるあるいはそ
こに加えられるとき、このルーチンの進行中に修正され
る。
【0042】
【表24】 WORD far doslfn_WhackPath(full_path,tmp_path_compo
nent,final_component) char far *full_path; char far *tmp_path_component; char far *final_component; パラメータ: full_path パス全体名へのポインタ。このパスは、2つの個々の部
分に分割される。パス情報は、tmp_path_componentに入
れられ、full_pathの終わりのファイル/サブディレクト
リ名はfinal_componentに入れられる。 tmp_path_component (full_pathからの)パス情報が格納されるバッファへの
ファー・ポインタ。呼出し元は、このバッファが最長の
可能なパスを保有するに十分な大きさであるとことを保
証する責任がある。 final_component ファイル/サブディレクトリ名(full_pathからの最後の
要素)が格納されるバッファへのファー・ポインタ。呼
出し元は、このバッファが最長の可能なファイル/サブ
ディレクトリ名を保有するに十分な大きさであることを
保証する責任を負う。 リターン値:成功した場合、リターン値はSUCCESS(00h)
であり、そうでない場合、ゼロでない値が返される。有
効なリターン値は次の通りである。 SUCCESS 0x0 関数は成功した。 GENERAL_ERROR 0xFF 関数は失敗した。 コメント:このルーチンは、specified_full_pathを取
得し、それを2つのセクションに分ける。第1のセクシ
ョンは、full_pathの最後の要素を含まないがその糸口
になるパス情報である。第2のセクションは、full_pat
hの終わりのファイル/サブディレクトリ名である。パス
情報は、tmp_path_componentによって指し示されるバッ
ファに格納され、ファイル/サブディレクトリ名情報はf
inal_componentによって指し示されるバッファに格納さ
れる。
【0043】
【表25】 WORD far doslfn_WalkPath(path, cluster_number, dir
ptr) char far *path; CLUSTER far *cluster_number; SHORT_DIR_ENTRY far *far *dirptr; パラメータ: path 「歩く(walk down)」必要があるパス全体へのファー・
ポインタ。pathは長いサブディレクトリ名を含みうるの
で、DOSがパスの中の全ての要素にアクセスできると仮
定することはできない。このDOSの制限のため、このル
ーチンは、「パスを歩く」責任を負う。それは、パスの
中の各々の要素を手作業で見つけ、cluster_numberと、
パスの中の最後の要素のdirptrを返す。 cluster_number path内の最終の要素に関連するクラスタ番号に設定され
る変数へのファー・ポインタ。(このクラスタ番号は、p
ath内の最終の要素に関するディレクトリ・エントリを
含むクラスタを参照する。) dirptr 呼出し元のファー・ポインタへのファー・ポインタ。こ
のパラメータは入力時には使用されない。終了時、それ
は、path内の最終要素に関するディレクトリ・エントリ
が配置されているcluster_buffer内の場所を指す。エラ
ーが生じた場合、この値は、定義されず、アクセスされ
ない。 リターン値:成功した場合、リターン値はSUCCESS(00h)
であり、そうでない場合、ゼロでない値が返される。有
効なリターン値は次の通りである。 SUCCESS 0x0 関数は成功した。 ERROR_READ_FAULT 0x1E ディスクからの読込にエラ
ーが生じた。 GENERAL_ERROR 0xFF 関数は失敗した。 コメント:この関数は、pathパラメータによって指定さ
れるパスを「歩く」。pathは、長いサブディレクトリ名
を含むので、DOSがパス内の全ての要素にアクセスでき
ると仮定することはできない。このルーチンは、手作業
でパス内の各々の要素を見つける。それは、path内の最
終要素に関するディレクトリ・エントリを含むcluster_
numberとポインタを、path内の最終要素が配置されてい
るcluster_buffer内のスポットに返す。このルーチン
は、それが探索中にFAT割当てチェインをたどるとき、c
luster_bufferの内容を修正することができる。
【0044】
【表26】 WORD far doslfn_DeleteFileNoPathWalk(drive, file_n
ame, cluster_number) char drive_number; char far *file_name; CLUSTER far *cluster_number; パラメータ: drive_number 空いているディレクトリ・エントリのブロックを探索す
るドライブ番号を識別する。ドライブA:=0、B:=1等。 file_name 削除するファイル名を含むASCIIZ列(string)へのファー
・ポインタ。 cluster_number file_nameのためのディレクトリ・エントリを含むクラ
スタ番号へのポインタ。クラスタの内容は、cluster_bu
fferにあると期待される。 リターン値:成功した場合、リターン値はSUCCESS(00h)
であり、そうでない場合、ゼロでない値が返される。有
効なリターン値は次の通りである。 SUCCESS 0x0 関数は成功した。 ERROR_WRITE_FAULT 0x1D ディスクへの書込にエラー
が生じた。 ERROR_READ_FAULT 0x1E ディスクからの読込にエラ
ーが生じた。 GENERAL_ERROR 0xFF 関数は失敗した。 コメント:この関数は、file_nameパラメータで指定さ
れるファイルを削除する。このファンクションは、dosl
fn_DeleteFile()関数と類似するが、doslfn_PathWalk()
を使用してすでに「パスを歩いた」それらの内部ルーチ
ンについて最適化され、file_nameを参照するディレク
トリ・エントリについて有効なクラスタ番号をもつ。
【0045】
【表27】 WORD far doslfn_GenerateShortname(path, long_file_
name, short_file_name) char far *path; char far *long_file_name; char far *short_file_name; パラメータ: path 最終の長いファイルまたはディレクトリが存在するパス
へのファー・ポインタ。このパスは、ディレクトリ名を
含んではならない。 long_file_name 長いファイルまたはディレクトリ名へのファー・ポイン
タ。短いファイル/ディレクトリ名は、この長い名前か
ら生成される。 short_file_name 最低で13バイトでなければならないバッファへのファ
ー・ポインタ。このパラメータは、入力時には使用され
ない。このルーチンは、short_file_nameバッファを、l
ong_file_nameに基づいて自動生成される、関連する短
い8.3ディレクトリ名で満たす。 リターン値:成功した場合、リターン値はSUCCESS(00h)
であり、そうでない場合、ゼロでない値が返される。有
効なリターン値は次の通りである。 SUCCESS 0x0 関数は成功した。 ERROR_READ_FAULT 0x1E ディスクからの読込にエラ
ーが生じた。 GENERAL_ERROR 0xFF 関数は失敗した。 コメント:このルーチンは、指定されるpathおよびlong
_file_nameを取得し、関連する短い(8.3)ファイル名を
自動生成する。この短いファイル名は、バッファのshor
t_file_nameの呼出し元に返される。ここで、このパス
・パラメータは、関連する短い8.3ディレクトリ名を
自動生成する際にのみ使用される。 注: この機能性は、この障害復旧アプリケーションに
よって必要とされず、全ての自動生成ルールが実現され
るわけではない。この機能がこの時使用されることはす
すめられない。
【0046】
【表28】 unsigned char far doslfn_CalculateChecksum(short_f
ile_name) char far *short_file_name; パラメータ: short_file_name DOS内部11バイト形式の短いファイル名へのファー・ポ
インタ。 リターン値:リターン値は、short_file_nameパラメー
タに基づくチェックサム値である。 コメント:このルーチンは、指定されるshort_file_nam
eを取得し、そこから各々の長い名前のディレクトリ・
エントリに入れる適当なチェックサム値を計算する。
【0047】
【表29】 WORD far doslfn_IsValidShortname(file_name) char far *file_name; パラメータ: file_name ASCIIZ形式の短い(8.3)ファイル名へのファー・ポイン
タ。 リターン値:成功した場合、リターン値はSUCCESS(00h)
であり、そうでない場合、ゼロでない値が返される。有
効なリターン値は次の通りである。 SUCCESS 0x0 関数は成功した。 GENERAL_ERROR 0xFF file_nameは有効な短い名
前ではない。 コメント:このルーチンは、指定されるfile_nameを取
得し、それが有効な短い(8.3)ファイル名かどうか判断
する。
【0048】
【表30】 WORD far doslfn_CreateTempFile(attribute, tmp_file
_name) WORD attribute; char far *tmp_file_name; パラメータ: attribute 一時的ファイルに関連する以下の1つまたは複数のファ
イル属性を含む。 0x00 - 通常のファイル 0x01 - 読込専用ファイル 0x02 - 隠しファイル 0x04 - システム・ファイル 0x20 - アーカイブ・ファイル tmp_file_name 2つの目的に使用されるバッファへのファー・ポイン
タ。入力パラメータとして、このバッファは、一時的フ
ァイル(ASCIIZ形式)が生成される位置へのパス全体を含
まなければならない。出力時、一時的ファイルが、パス
全体の後ろに付けられるとき、バッファが修正される。
tmp_file_nameバッファが、一時的ファイル名とパスを
保有するに十分な大きさであることを保証するのは、呼
出し元の責任である。例えば、最長の可能なファイル名
は13文字であるので、バッファは渡された最初のパス
よりも13バイト長くなければならない。 リターン値:リターン値は、一時的ファイルのハンドル
である。ハンドルが0の場合、それは、一時的ファイル
の生成にエラーが生じたことを示す。 コメント:このルーチンは、指定されるpathを取得し、
そのディレクトリ内にユニークな一時的ファイルを生成
する。そしてルーチンは、読込/書込モードで一時的フ
ァイルを開き、そのオープン・ファイルに、ハンドル
と、一時的ファイルのパス全体とファイル名を返す。
【0049】
【表31】 WORD far doslfn_GetFATEntry (drive_number, cluste
r) char drive_number; CLUSTER far *cluster; パラメータ: drive_number 探索するFATを含むドライブ番号を識別する。ドライブ
A:=0、B:=1等。 cluster FATへの索引として使用される、クラスタ番号へのファ
ー・ポインタ。終了する前に、このパラメータはFATエ
ントリを含むように修正される。結果は、12ビットと16
ビットFATの両方について同一であり、以下のうちの1
つになりうる。 0000h :クラスタは利用可能である。 FFF0h to FFF6h :予約済み。 FFF7h :不良クラスタ。 FFF8h to FFF7h :ファイルの最後のクラスタ。 その他の値 :チェインの中の次のクラスタのク
ラスタ番号。 注:FATがもとのままであり、このルーチンに渡される
クラスタ番号が、有効なファイルまたはディレクトリの
クラスタである限り、0000h、FFF0hからFFF6h、およびF
FF7hクラスタ番号は返されない。 リターン値:成功した場合、リターン値はSUCCESS(00h)
であり、そうでない場合、ゼロでない値が返される。有
効なリターン値は次の通りである。 SUCCESS 0x0 関数は成功した。 ERROR_READ_FAULT 0x1E ディスクからの読込にエラ
ーが生じた。 GENERAL_ERROR 0xFF 関数は失敗した。 コメント:このルーチンは、指定されるcluster番号を
取得し、そのクラスタについてFATテーブル内の関連す
るエントリを返す。このルーチンは、12ビットおよび16
ビットFATの両方を自動的に考慮し、FATタイプにかかわ
らず、矛盾しない1組のFAT値を返す。このルーチン
は、FATの最初のコピーしか検査しない。何かの理由で
それが読込不可能な場合、第2のコピーを試さない。
【0050】
【表32】 WORD far doslfn_SetFATEntry(drive_number, cluster,
new_value) char drive_number; CLUSTER cluster; CLUSTER far *new_value; パラメータ: drive_number 修正するFATを含むドライブ番号を識別する。ドライブ
A:=0、B:=1等。 cluster 修正したいFATエントリに対応するクラスタ番号を含
む。 new_value FAT[クラスタ]に入れたい新しい値(新しいクラスタ番
号)を含む。 リターン値:成功した場合、リターン値はSUCCESS(00h)
であり、そうでない場合、ゼロでない値が返される。有
効なリターン値は次の通りである。 SUCCESS 0x0 関数は成功した。 ERROR_WRITE_FAULT 0x1D ディスクへの書込にエラ
ーが生じた。 ERROR_READ_FAULT 0x1E ディスクからの読込にエ
ラーが生じた。 GENERAL_ERROR 0xFF 関数は失敗した。 コメント:このルーチンは、new_valueによって指定さ
れる新しいクラスタ番号であり、new_valueを指すため
にFATクラスタを更新する。このルーチンは12ビットお
よび16ビットのFATの両方を自動的に考慮し、FATのすべ
てのコピーを更新する。
【0051】
【表33】 WORD far doslfn_LinkCluster(drive_number, cluster,
new_cluster) char drive_number; CLUSTER cluster; CLUSTER far *new_cluster; パラメータ: drive_number 1つのクラスタを別のクラスタとリンクしたいドライブ
番号を識別する。ドライブA:=0、B:=1等。 cluster 新しいクラスタを付加(リンク)したいクラスタ番号を含
む。 new_cluster clusterにリンクすることに成功した新しいクラスタを
含む。 リターン値:成功した場合、リターン値はSUCCESS(00h)
であり、そうでない場合、ゼロでない値が返される。有
効なリターン値は次の通りである。 SUCCESS 0x0 関数は成功した。 ERROR_WRITE_FAULT 0x1D ディスクへの書込にエラ
ーが生じた。 ERROR_READ_FAULT 0x1E ディスクからの読込にエ
ラーが生じた。 GENERAL_ERROR 0xFF 関数は失敗した。 コメント:このルーチンは、指定されるcluster番号を
取得し、その終わりに新しいクラスタをリンクする。新
しいクラスタの内容はすべて0に初期化される。このル
ーチンはdoslfn_SetFATEntry()を使用し、FATのすべて
のコピーを自動的に更新する。
【0052】
【表34】 void far doslfn_Convert_83_11(short_name, dos_nam
e) char far *short_name; char far *dos_name; パラメータ: short_name ASCIIZ形式の短い(8.3)名前へのファー・ポインタ。こ
の名前は、DOS内部の11バイト形式に変換される。 dos_name 変換された後でshort_nameを格納するために使用される
バッファへのファー・ポインタ。 注:これでDOS11バイト形式が定義されるのではないの
で、変換された名前は、列(string)を終了するためのNU
LL文字をもたない。 リターン値:なし。 コメント:このルーチンは、指定されるshort_name(8.3
ベースの名前)を取得し、それを、内部DOS11バイト形式
に変換する。それは、dos_nameによって指定されるバッ
ファに、変換された名前を入れる。dos_nameバッファが
最小の11バイトの長さであることを保証するのは、呼出
し元の責任である。DOSの11バイト・ファイル名は、11
バイト・バッファ内の左に収まるファイル名の最初の8
文字と、右に収まる3文字の拡張子をもつ。拡張子が存
在しない場合、代わりにスペース(20h)が使用される。
スペース(20h)は、最初の8文字と3文字の拡張子の間の
エリアを埋めるために使用される。ファイル名にはドッ
ト「.」は格納されない。以下に例を示す。
【0053】
【表35】 void far doslfn_ConvertDOS11Name(dos_internal_nam
e, dos_8_3_name) char far *dos_internal_name; char far *dos_8_3_name; パラメータ: dos_internal_name DOSの名前(DOS内部11バイト形式)へのファー・ポイン
タ。この名前は、DOS8.3の名前に変換される。注:こ
れでDOS11バイト形式が定義されるのではないので、こ
のパラメータは、列(string)を終了させるのにNULL文字
をもつ必要がない。 dos_8_3_name 変換された後にdos_internal_nameを格納するために使
用されるバッファへのファー・ポインタ。変換された名
前はASCIIZ形式である。 リターン値:なし。 コメント:このルーチンは、指定されるdos_internal_n
ame(DOS11バイト形式)を取得し、それをDOS8.3の名前
に変換させる。この変換された名前は、dos_8_3_nameに
よって指定されるバッファに格納される。dos_8_3_name
バッファが最小の13バイトの長さであることを保証する
のは、呼出し元の責任である。dos_8_3_nameは、ASCIIZ
形式で格納される。
【0054】本発明は例として次の実施態様を含む。 (1)短いファイル名規則を利用する第1のシステムか
ら長いファイル名規則を利用する第2のシステムに、フ
ァイルおよびディレクトリを変換する方法であって、
(a)初期化ルーチンを呼び出すステップと、(b)短いファ
イル名規則を使用して少なくとも1つのファイルを生成
するステップと、(c)短いファイル名規則を使用して少
なくとも1つのディレクトリを生成するステップと、
(d)上記少なくとも1つのディレクトリを、長いファイ
ル名規則を使用して複数のディレクトリに変換するステ
ップと、(e)ハードディスク上に複数のディレクトリを
配置するステップと、を含む上記方法。
【0055】(2)上記ステップ(a)がさらに、(f)ハー
ドディスク上に空間を割り当てるステップと、(g)ハー
ドディスク上に一時的なサブディレクトリを生成するス
テップと、を含む上記(1)の方法。
【0056】(3)上記ステップ(b)がさらに、(h)新し
く生成される少なくとも1つのファイルを、一時的なサ
ブディレクトリに格納するステップ、を含む上記(2)
の方法。
【0057】(4)上記ステップ(c)がさらに、(i)新し
く生成された少なくとも1つのディレクトリを、一時的
なサブディレクトリに格納するステップ、を含む上記
(3)の方法。
【0058】
【発明の効果】本発明の方法によれば、短いファイル名
規則を利用するオペレーティング・システムから、長い
ファイルおよびディレクトリ名を容易に操作することが
できる。従って、長いファイルおよびディレクトリ名規
則を使用するオペレーティング・システムで障害が生じ
た際、そのオペレーティング・システムを再インストー
ルする必要なく、短いファイル名規則を利用するオペレ
ーティング・システムから障害復旧することができる。
【図面の簡単な説明】
【図1】この発明を取り入れている多目的ディジタル・
コンピュータ・システムのブロック図。
【図2】データをコンピュータ・システムからテープ・
バックアップ・システムにアーカイブするシステムのブ
ロック図。
【図3】この発明に従うコンバータのブロック図。
【図4】この発明に従う方法の全体の流れを示すフロー
チャート。
【図5】この方法のより詳細なフローチャート。
【符号の説明】
301 システムA 302 システムB 310 コンバータ 320 "DOSLFN.LIB"ソフトウェア・ライブラリ

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】短いファイル名規則を利用する第1のシス
    テムから長いファイル名規則を利用する第2のシステム
    に、ファイルおよびディレクトリを変換する方法であっ
    て、 初期化ルーチンを呼び出すステップと、 短いファイル名規則を使用して、少なくとも1つのファ
    イルを生成するステップと、 短いファイル名規則を使用して、少なくとも1つのディ
    レクトリを生成するステップと、 長いファイル名規則を使用して、上記少なくとも1つの
    ディレクトリを複数のディレクトリに変換するステップ
    と、 ハードディスク上に上記複数のディレクトリを配置する
    ステップと、を含む上記方法。
JP9245087A 1996-09-11 1997-09-10 ファイルおよびディレクトリを変換する方法 Withdrawn JPH10124367A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/712,013 US5754848A (en) 1996-09-11 1996-09-11 Apparatus and method for disaster recovery of an operating system utilizing long file and directory names
US712,013 1996-09-11

Publications (2)

Publication Number Publication Date
JPH10124367A true JPH10124367A (ja) 1998-05-15
JPH10124367A5 JPH10124367A5 (ja) 2005-03-17

Family

ID=24860425

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9245087A Withdrawn JPH10124367A (ja) 1996-09-11 1997-09-10 ファイルおよびディレクトリを変換する方法

Country Status (2)

Country Link
US (1) US5754848A (ja)
JP (1) JPH10124367A (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6286013B1 (en) * 1993-04-01 2001-09-04 Microsoft Corporation Method and system for providing a common name space for long and short file names in an operating system
US5860122A (en) * 1995-11-14 1999-01-12 Matsushita Electric Industrial Co., Ltd. Backup unit including identifier conversion means
US6144969A (en) * 1996-02-09 2000-11-07 Sony Corporation File name conversion
US6405325B1 (en) * 1999-01-30 2002-06-11 Inventec Corp. Method and tool for restoring crashed operation system of computer
JP3440991B2 (ja) * 1999-03-05 2003-08-25 日本電気株式会社 ファイルリビジョン管理システム
US6374265B1 (en) * 1999-03-29 2002-04-16 Inventec Corp. Method for backup and recovery of the long filename in computer system
US6578054B1 (en) * 1999-10-04 2003-06-10 Microsoft Corporation Method and system for supporting off-line mode of operation and synchronization using resource state information
US6496944B1 (en) 1999-10-06 2002-12-17 International Business Machines Corporation Method for database assisted file system restore
US6775679B2 (en) * 2001-03-20 2004-08-10 Emc Corporation Building a meta file system from file system cells
US20020154755A1 (en) * 2001-04-23 2002-10-24 Telefonaktiebolaget L M Ericsson Communication method and system including internal and external application-programming interfaces
US6909910B2 (en) * 2002-02-01 2005-06-21 Microsoft Corporation Method and system for managing changes to a contact database
US6985914B2 (en) * 2002-02-20 2006-01-10 Emc Corporation Cluster meta file system of file system cells managed by respective data movers of a network file server
US7644376B2 (en) * 2003-10-23 2010-01-05 Microsoft Corporation Flexible architecture for notifying applications of state changes
US8166005B2 (en) * 2004-09-21 2012-04-24 Emc Corporation Pathname caching and protection of the root directory in a nested multilayer directory structure
US8321439B2 (en) * 2004-12-17 2012-11-27 Microsoft Corporation Quick filename lookup using name hash
US7873596B2 (en) 2006-05-23 2011-01-18 Microsoft Corporation Extending cluster allocations in an extensible file system
US9639554B2 (en) * 2004-12-17 2017-05-02 Microsoft Technology Licensing, Llc Extensible file system
US8606830B2 (en) 2004-12-17 2013-12-10 Microsoft Corporation Contiguous file allocation in an extensible file system
JP4671332B2 (ja) * 2005-03-10 2011-04-13 株式会社日立製作所 ユーザ識別情報を変換するファイルサーバ
EP1814046A3 (en) * 2006-01-25 2008-12-24 Océ-Technologies B.V. System and method providing a file list display function and a file name generation function
CN100391167C (zh) * 2006-03-20 2008-05-28 华为技术有限公司 服务呼叫会话控制功能实体备份方法及其系统
JP4901880B2 (ja) * 2007-01-09 2012-03-21 日本電信電話株式会社 符号化装置、復号化装置、それらの方法、その方法のプログラム及びそのプログラムを記録した記録媒体

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02165241A (ja) * 1988-12-19 1990-06-26 Toshiba Corp ファイルアクセス方式
US5627996A (en) * 1992-08-19 1997-05-06 At&T Method and apparatus for accessing the same computer file using different file name formats
EP0618540B1 (en) * 1993-04-01 2001-12-12 Microsoft Corporation Common name space for long and short filenames

Also Published As

Publication number Publication date
US5754848A (en) 1998-05-19

Similar Documents

Publication Publication Date Title
JPH10124367A (ja) ファイルおよびディレクトリを変換する方法
CA2137492C (en) System for and method of providing delta-versioning of the contents of pcte file objects
US7934064B1 (en) System and method for consolidation of backups
US7680842B2 (en) Systems and methods for a snapshot of data
US8356013B2 (en) Systems and methods for a snapshot of data
US7953704B2 (en) Systems and methods for a snapshot of data
US7680836B2 (en) Systems and methods for a snapshot of data
US8121986B2 (en) Method and apparatus to capture and transmit dense diagnostic data of a file system
US8260818B1 (en) Method, apparatus, and computer-readable medium for space-efficient storage of variables in a non-volatile computer memory
EP0415346A2 (en) Method and system for dynamic volume tracking in an installable file system
WO2001098905A1 (en) File managing method
US6636941B1 (en) Enhanced stable disk storage
CN1983266A (zh) 闪速类介质中存储事务记录的文件系统
WO2008021528A2 (en) Systems and methods for a snapshot of data
US6446085B1 (en) Method and apparatus for processing recursive hard links in a data processing system
US7181473B1 (en) Identifying files within a namespace
US6697813B1 (en) Data structures and methods for imaging computer readable media
WO2007026484A1 (ja) 実行バイナリイメージの作成及び実行を行う装置、方法、プログラム、該プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2002023964A (ja) コンピュータ・システムにおける記録媒体に記憶された情報の制御方法
KR20030075738A (ko) 윈도우즈 운영체계를 적용한 컴퓨터에서의 데이터 복구방법
Hantelmann File Oriented Commands
JPH064167A (ja) ディスク媒体障害の復旧方式
Pilavakis General Administrative Functions
Galiano Molina Advanced OS deployment system
Curley Bare metal recovery, revisited

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040416

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040416

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20070313