Windows Embedded Compact 7 (WEC7) supports a variety of common File systems, including three different types of FAT (File Allocation Tabe) File systems. Applications can access files through file I/O functions without worrying about how the underlying system is implemented.
From Microsoft's documents, we can see that the file systems supported by WEC7 can be divided into two categories:
The first type is "File System Controlled by the file system drive (FSDs)". WEC7 contains drivers for multiple file systems. In addition, you can create and register a suitable File System by yourself, and all these file systems can be accessed through the Win32 file system API function of WEC7.
The other is "Registered file systems", which includes the RELFSD file system, the Object Storage Service (RAM) file system, and the ROM file system.
WEC7 supports two types of File Cache services: File Cache and disk cache.
The File Cache service is provided by the file system cache manager. The file system cache manager is actually a file system filter. The File Cache can only be used to cache file data. The file system filter is actually a DLL, which exports some entry points (hooks) functions. The file system filter intercepts file system calls. For example, if the application calls CreateFile, it enters the CreateFile interface function of the filter. After the corresponding work is done in this function, it is sent back to the corresponding standard file system function. With such a filter, we can also compress, encrypt, scan viruses, and so on.
The disk cache service is provided by a reference library, which is linked by FSD. For example, FSD can use the disk cache service to cache file system metadata (metadata), such as directory entries.
For the filter mentioned above, if WinCE is installed on the computer, Microsoft has a sample: \ Public \ Common \ Oak \ Drivers \ FSD \ EncFilt in the following path. However, I found that WEC7 does not seem to exist, and WinCE6 has this sample program in this path. The other Sample location is \ WINCE700 \ public \ COMMON \ oak \ drivers \ fsd \ fsdspy. How are these filters used, you can find it in the source code of the file system driver Manager (fsdmgr) in the source code of the WinCE system.