File I/O API
Standard file I/O is performed through the Standard File I/O API. The
application makes a function call and the file system request router
passes the request to the correct file system for processing. See Figure
1-2.
+-------------+
| application |
+------+------+
v
+-------------------------+ Dynamic
| Standard File I/O API | Link
+-------------+-----------+ Library
v
+----------------------------------------------+
| File System Request Router |
+-------------------------------------+ |
| |
+--------+ +--------+ +--------+| |
| File | | File | | File || |
| System | | System | | System || |
+--------+ +--------+ +--------+| |
+-------------------------------------+ |
| |
+-------------------------------------+ |
| |
+--------+ +--------+ +--------+| |
| Device | | Device | | Device || |
| Driver | | Driver | | Driver || |
+--------+ +--------+ +--------+| |
+-------------------------------------+ |
| |
+----------------------------------------------+
Figure 1-2. Standard File I/O
New API may be provided by a file system to implement functions specific
to the file system or not supplied through the standard file I/O
interface. New API are provided in a dynamic link library that uses the
DosFSCtl standard function call to communicate with the specific file
system (FSD). See Figure 1-3.
+-------------+
| application |
+------+------+
|
v
+-------------------------+
| Extended File I/O API | Dynamic Link Library
| for File System X |
+-----------+-------------+
|
v
+-------------------------+
| DosFsCtl | Standard File I/O API
+-----------+-------------+
|
+------------------|---------------------------+
| | |
+------------------|------------------+ |
v | |
+--------+ +--------+ +--------+| |
| File | | File | | File || |
| System | | System | | System || |
| | | X | | || |
+--------+ +--------+ +--------+| |
+-------------------------------------+ |
| |
+-------------------------------------+ |
| |
+--------+ +--------+ +--------+| |
| Device | | Device | | Device || |
| Driver | | Driver | | Driver || |
+--------+ +--------+ +--------+| |
+-------------------------------------+ |
| |
+----------------------------------------------+
Figure 1-3. Extended File I/O
Created using Inf-PHP v.2 (c) 2003 Yuri Prokushev
Created using Inf-HTML v.0.9b (c) 1995 Peter Childs