# FatFs - f_mount

## f_mount

論理ドライブにファイル・システム・オブジェクトを登録・抹消します。

    FRESULT f_mount (
      BYTE  vol,      /* [IN] 論理ドライブ番号 */
      FATFS*  fatfs   /* [IN] ワーク・エリアへのポインタ */
    );

#### 引数

vol
  論理ドライブ番号(0 〜 `_VOLUMES - 1`)。
fatfs
  登録するファイル・システム・オブジェクトへのポインタ。

#### 戻り値

FR_OK, FR_INVALID_DRIVE

#### 解説

FatFsモジュールでは、それぞれの論理ドライブにファイル・システム・オブジェクトというワーク・エリアが必要です。この関数は論理ドライブにそのワーク・エリアを登録したり抹消したりします。何らかのファイル関数を使用する前に、この関数でその論理ドライブのワーク・エリアを与えておかなければなりません。`fatfs`にヌル・ポインタを指定するとワーク・エリアの登録は抹消され、登録されていたワーク・エリアは破棄できます。操作対象のドライブに対して開かれているファイルやディレクトリがあった場合、それらは全て無効になります。

この関数は、物理ドライブの状態に関わらず常に成功します。関数内では下位レイヤへのアクセスは発生せず、指定されたワーク・エリアをクリア(無効化)し、そのアドレスを内部配列に登録するだけです。単に登録済みのワーク・エリアをクリアする目的にも使えます。ボリュームへのアクセス開始のとき次のうちいずれかまたは両方の条件が真のとき、実際のマウント動作(物理ドライブの初期化、FATボリュームの検索、BPBに従いワーク・エリアを初期化)が行われます。

- ファイル・システム・オブジェクトが未初期化(`f_mount()`による)
- 物理ドライブが未初期化(システム・リセットやメディアの取り外しによる)

下位レイヤがメディア交換の検出をサポートしないときは、アプリケーションはメディア交換のたびに`f_mount()`を実行する必要があります。

#### 対応情報

全ての構成で使用可能です。

#### 参照

`FATFS`

戻る