The big benefit of using this library is that it
let's you write code to
manipulate the FAT file system that works on FAT12, FAT16, FAT32 without
knowing the exact FAT file system this is going to run on. The same code
works for FAT12, FAT16, FAT32 without having code that looks like:
In ROS each FS driver has to implement the defrag APIs. An application can
defrag any FS by using the 3 publicly documented IOCTLs.
UFAT/UNTFS/Uxxx... is not used for fs defragmentation.
Anyway this could be used as the basis for ufat.dll.
The utilities that
already use this library could then also be put in here. And the rest can
then be easily written.
As mentioned above, defragmentation is done by the fs drivers in kernel mode.
What would then be needed is the actual functions that
make up the
interface to ufat.dll.
We can design the interfaces to ufat, untfs, ... as we wish. These
interfaces are not documented publicly as there is no standard. each FS
should come with it's own utilities. Chkdsk can only be used with the file
systems that come with windows/reactos, other FS need to provide their own
tools.
- Thomas