## disk_write

The disk_write function is called to write data to the storage device.

    DRESULT disk_write (
      BYTE pdrv,        /* [IN] Physical drive number */
      const BYTE* buff, /* [IN] Pointer to the data to be written */
      LBA_t sector,     /* [IN] Sector number to write from */
      UINT count        /* [IN] Number of sectors to write */
    );

#### Parameters

pdrv
  Physical drive number to identify the target device.
buff
  Pointer to the first item of the byte array to be written. The size of data to be written is sector size * `count` bytes.
sector
  Start sector number in LBA. The data type `LBA_t` is an alias of `DWORD` or `QWORD` depends on the configuration option.
count
  Number of sectors to write.

#### Return Values

RES_OK (0)
  The function succeeded.
RES_ERROR
  An unrecoverable hard error occured during the write operation.
RES_WRPRT
  The medium is write protected.
RES_PARERR
  Invalid parameter.
RES_NOTRDY
  The device has not been initialized.

#### Description

The specified memory address is not that always aligned to word boundary because the argument is defined as `BYTE*`. For more information, refer to the description of `disk_read` function.

Generally, a multiple sector write request (`count``> 1`) must not be split into single sector transactions to the storage device, or the file write throughput will be drastically decreased.

FatFs expects delayed write function in the disk control layer. The write operation to the media does not need to be completed when return from this function by what write operation is in progress or data is only stored into the write-back cache. The write data on the `buff` is invalid after return from this function. The write completion request is done by `CTRL_SYNC` command of `disk_ioctl` function. Therefore, if a delayed write function is implemented, the write throughput of the filesystem will be improved.

Remarks: Application program MUST NOT call this function, or FAT structure on the volume can be collapsed.

#### QuickInfo

This function is not needed when `FF_FS_READONLY == 1`.

Return