f_mkfs

ドライブ上にFATファイル・システムを作成(フォーマット)します。

FRESULT f_mkfs (
  BYTE  Drive,              /* 論理ドライブ番号 */
  BYTE  PartitioningRule,   /* 区画作成方法 */
  WORD  AllocSize           /* クラス・タサイズ */
);

引数

Drive
フォーマットする論理ドライブ(0-9)。
PartitioningRule
0を指定すると、ドライブの全領域を占める基本DOS区画を作成したあとその区画にファイル・システムを作成します(FDISKフォーマット)。1を指定すると、区画テーブルを作成せずドライブの先頭セクタから直接ファイル・システムを作成します(super floppy (SFD) フォーマット)。
AllocSize
クラスタ・サイズをバイト単位で指定します。0または512〜32768の範囲でかつ2の累乗でなければなりません。0を指定するとドライブ・サイズに応じたデフォルトのクラスタ・サイズを選択します。FAT64(64KB/クラスタ)は選択できません。

戻り値

FR_OK (0)
正常終了。
FR_INVALID_DRIVE
ドライブ番号が無効。
FR_NOT_READY
メディアがセットされていないなど、物理ドライブが動作不能状態。
FR_WRITE_PROTECTED
メディアが書き込み禁止状態。
FR_NOT_ENABLED
その論理ドライブにワーク・エリアが割り当てられていない。
FR_DISK_ERR
ディスク・エラーによる失敗。
FR_MKFS_ABORTED
次の理由で開始前に処理が中断された。
  • ディスク・サイズが小さすぎる。
  • 何らかの引数が不正。
  • そのクラスタ・サイズが使えない。クラスタ数が0xFF7と0xFFF7近辺になるとき発生する可能性がある。

説明

f_mkfs関数はFATファイル・システムをドライブ上に作成します。リムーバブル・メディアのパーテーショニング・ルールとしてはFDISK形式とSFD形式があり、メモリ・カードではFDISK形式が普通です。この関数は複数区画には対応していないので、その物理ドライブの既存の区画は全て削除され、全体が一つの区画になります。

FATタイプ(FAT12/FAT16/FAT32)は、その論理ドライブ上のクラスタ数によってのみ決定される[FAT仕様書より]決まりになっていて、それ以外の要因はありません。したがって、どのFATタイプになるかはドライブ・サイズと指定されたクラスタ・サイズに依存します。クラスタ・サイズは大きくするほど性能が上がり、逆にディスク利用効率は落ちます。

この関数は、構成オプション_USE_MKFSを選択したときにサポートされます。

Return