Windows CE implements a separate file system, the FAT file system, to support block devices. The FAT file system does not read or write to block devices directly; it uses underlying block device drivers for all access to block device hardware. The block device driver must present the block device to the FAT file system as a block-oriented device.
Block device drivers transparently emulate ordinary disk drives, so applications do not need to behave differently when reading and writing files to linear flash memory. FAT implements a logical file system and provides an abstraction between files in the application name space, such as \PC Card\Excel Docs\Expense report.pxl, and devices in the device name space, such as “DSK1:”. The block device driver is responsible for guaranteeing safe I/O operations even when interrupted by a power cycle. The FAT file system accesses the block device by calling the block device driver’s IOControl function with the appropriate I/O control codes.
OEMs can implement additional installable file systems. Any such file systems should interact with a block device driver in the same way as the FAT file system.