物理ドライブを分割します。
FRESULT f_fdisk ( BYTE pdrv, /* [IN] 物理ドライブ番号 */ const DWORD* szt, /* [IN] 区画サイズ テーブル */ void* work /* [-] ワークエリア */ );
この関数は、指定された物理ドライブのMBRに区画テーブルを作成します。区画分けは一般的なFDISK形式で行うため、最大4つの基本区画を作成することができます。拡張区画には対応していません。区画サイズ テーブルにはドライブをどのように分割するか指定します。この配列は4つの項目から成り、先頭の項目が1番目の区画のサイズを示します。項目の値が100以下の場合、その区画のドライブの総容量に対する割合をパーセント単位で指定します。100を超える値の場合はセクタ数の直接指定になります。ドライブ上への区画の配置順は、項目順になります。
_FS_READOLNY == 0 で _USE_MKFS == 1 で _MULTI_PARTITION == 1 のとき使用可能です。
/* ユーザ定義のボリューム管理テーブル (_MULTI_PARTITION == 1 のとき必要) */ PARTITION VolToPart[] = { {0, 1}, /* 論理ドライブ 0 ==> 物理ドライブ 0, 第1区画 */ {0, 2}, /* 論理ドライブ 1 ==> 物理ドライブ 0, 第2区画 */ {1, 0} /* 論理ドライブ 2 ==> 物理ドライブ 1, 自動検出 */ };
/* 新しい物理ドライブ(0)の初期化 */ FATFS fs; DWORD plist[] = {50, 50, 0, 0}; /* 第1区画,第2区画それぞれに50%ずつ割り当て */ BYTE work[_MAX_SS]; f_fdisk(0, plist, work); /* 物理ドライブ 0 の分割 */ f_mkfs("0:", FMT_ANY, work, sizeof work); /* 論理ドライブ 0: のフォーマット */ f_mkfs("1:", FMT_ANY, work, sizeof work); /* 論理ドライブ 1: のフォーマット */