disk_ioctl

セクタの読み書き以外のディスク・ドライブ自体に対する様々な制御をします。

DRESULT disk_ioctl (
  BYTE Drive,      /* 物理ドライブ番号 */
  BYTE Command,    /* 制御コマンド */
  void* Buffer     /* データ受け渡しバッファ */
);

引数

Drive
物理ドライブ番号(0-9)を指定します。
Command
制御コマンド・コードを指定します。
Buffer
制御コマンドに依存したパラメータを授受するバッファを指すポインタを指定します。バッファを使用しないコマンドの場合は、NULLを指定します。

戻り値

RES_OK (0)
正常終了。
RES_ERROR
何らかのエラーが発生した。
RES_PARERR
コマンドが不正。
RES_NOTRDY
ドライブが動作可能状態ではない、または初期化されていない。

解説

物理ドライブの種類によりサポートされるコマンドは異なりますが、FatFsモジュールでは、次の汎用コマンドのみ使用し、ドライブの種類に依存した制御は行いません。

この関数はリード・オンリー構成では必要とされません。

コマンド解説
CTRL_SYNCドライブがデータの書き込みを完了するのを待ちます。ライト・バック・キャッシュがある場合は、書き込まれていないデータを即時書き戻します。
GET_SECTOR_SIZEBufferの指すWORD変数にドライブのセクタ・サイズを返します。_MAX_SSが1024以上のとき必要とされます。
GET_SECTOR_COUNTBufferの指すDWORD変数にドライブ上の総セクタ数を返します。f_mkfs内でのみ使用。
GET_BLOCK_SIZEBufferの指すDWORD変数にメモリ・アレーの消去ブロックサイズをセクタ単位で返します。不明な場合またはHDDでは1を返します。f_mkfs内でのみ使用。

戻る