Delayed Writes
Writes to a SEF Unit complete before the final flash memory addresses have been assigned. The addresses returned by
SEFWriteWithoutPhysicalAddress are preliminary
flash addresses. When a defect is encountered, some portion of the write will be relocated
to different flash addresses. When this occurs, a notification is sent mapping the preliminary
flash addresses to the final flash memory address. There is no direct notification sent when the
preliminary flash memory address is the final flash memory address. A close notification is only sent
after all the flash addresses in a super block are final. For specific addresses, it can be inferred by
utilizing buffer release notifications. A write buffer supplied to the device must remain valid until
the data is committed to flash memory. By default, the library copies the write data to a library
controlled buffer. The write call can set the kSefIoFlagNotifyBufferRelease
flag indicating the
the user supplied buffer can be used directly. The caller must keep the buffer valid until notified
the buffer can be released. When a buffer release notification is sent, the flash addresses for that
portion of the buffer are final.