FS Service Routines
The following table summarizes the entry points that make up the interface
between the kernel and the FSD.
Note: Names must be in all upper case, as required by OS/2 naming
conventions.
FS Entry Point Description FSDs Required
to export
------------------------------------------------------------------------
FS_ALLOCATEPAGESPACE Adjust the size of paging file PAGE I/O
------------------------------------------------------------------------
FS_ATTACH Attach to an FSD ALL
------------------------------------------------------------------------
FS_CANCELLOCKREQUEST Cancel file record lock request FILE I/O
------------------------------------------------------------------------
FS_CANCELLOCKREQUESTL Cancel file record lock request FILE I/O
------------------------------------------------------------------------
FS_CHDIR Change/Verify directory path ALL
------------------------------------------------------------------------
FS_CHGFILEPTR Move a file's position pointer ALL
------------------------------------------------------------------------
FS_CHGFILEPTRL Move a file's position pointer ALL
------------------------------------------------------------------------
FS_CLOSE Release a file handle ALL
------------------------------------------------------------------------
FS_COMMIT Flush a file's buffer to disk ALL
------------------------------------------------------------------------
FS_COPY Copy a file ALL
------------------------------------------------------------------------
FS_DELETE Delete a file ALL
------------------------------------------------------------------------
FS_DOPAGEIO Perform paging I/O operations PAGE I/O
------------------------------------------------------------------------
FS_EXIT End of a process cleanup ALL
------------------------------------------------------------------------
FS_FILEATTRIBUTE Query/Set file's attributes ALL
------------------------------------------------------------------------
FS_FILEINFO Query/Set file's information ALL
------------------------------------------------------------------------
FS_FILEIO Multi-function file I/O ALL
------------------------------------------------------------------------
FS_FILELOCKS Request a file record lock/unlock FILE I/O
------------------------------------------------------------------------
FS_FILELOCKSL Request a file record lock/unlock FILE I/O
------------------------------------------------------------------------
FS_FINDCLOSE Directory search close ALL
------------------------------------------------------------------------
FS_FINDFIRST Find first matching filename(s) ALL
------------------------------------------------------------------------
FS_FINDFROMNAME Find matching filename from name ALL
------------------------------------------------------------------------
FS_FINDNEXT Find next matching filename ALL
------------------------------------------------------------------------
FS_FINDNOTIFYCLOSE Close FindNotify handle ALL
------------------------------------------------------------------------
FS_FINDNOTIFYFIRST Monitor a directory for changes ALL
------------------------------------------------------------------------
FS_FINDNOTIFYNEXT Resume reporting directory changes ALL
------------------------------------------------------------------------
FS_FLUSHBUF Commit file buffers to disk ALL
------------------------------------------------------------------------
FS_FSCTL File system control ALL
------------------------------------------------------------------------
FS_FSINFO Query/Set file system information ALL
------------------------------------------------------------------------
FS_INIT FSD initialization ALL
------------------------------------------------------------------------
FS_IOCTL I/O device control ALL
------------------------------------------------------------------------
FS_MKDIR Make a directory ALL
------------------------------------------------------------------------
FS_MOUNT Mount/unmount volumes ALL
------------------------------------------------------------------------
FS_MOVE Move a file or subdirectory ALL
------------------------------------------------------------------------
FS_NEWSIZE Change a file's logical size ALL
------------------------------------------------------------------------
FS_NEWSIZEL Change a file's logical size ALL
------------------------------------------------------------------------
FS_NMPIPE Do a named pipe operation ALL
------------------------------------------------------------------------
FS_OPENCREATE Open/create/replace files ALL
------------------------------------------------------------------------
FS_OPENPAGEFILE Create paging file and handle PAGE I/O
------------------------------------------------------------------------
FS_PATHINFO Query/Set a file's information ALL
------------------------------------------------------------------------
FS_PROCESSNAME FSD unique name canonicalization ALL
------------------------------------------------------------------------
FS_READ Read data from a file ALL
------------------------------------------------------------------------
FS_RMDIR Remove a subdirectory ALL
------------------------------------------------------------------------
FS_SETSWAP Notification of swapfile ownership ALL
------------------------------------------------------------------------
FS_SHUTDOWN Shutdown file system ALL
------------------------------------------------------------------------
FS_VERIFYUNCNAME Verify UNC server ownership UNC
------------------------------------------------------------------------
FS_WRITE Write data to a file ALL
------------------------------------------------------------------------
FS32_READ Read data from a file ALL
------------------------------------------------------------------------
FS32_READFILEATCACHE Read file from cache ALL
------------------------------------------------------------------------
FS32_RETURNFILECACHE Return file cache ALL
------------------------------------------------------------------------
FS32_CHGFILEPTR Move a file's position pointer ALL
------------------------------------------------------------------------
FS32_CHGFILEPTRL Move a file's position pointer ALL
------------------------------------------------------------------------
FS32_WRITE Write data to a file ALL
Each FS entry point has a distinct parameter list composed of those
parameters needed by that particular entry. Parameters include:
oFile pathname
oCurrent disk/directory information
oOpen file information
oApplication data buffers
oDescriptions of file extended attributes
oOther parameters specific to an individual call
Most of the FS entry points have a level parameter for specifying the
level of information they are provided or have to supply. FSDs must
provide for additional levels which may be added in future versions of
OS/2 by returning ERROR_NOT_ SUPPORTED for any level they do not
recognize.
File system drivers which support hierarchical directory structures must
use '\' and '/' as path name component separators. File system drivers
which do not support hierarchical directory structures must reject as
illegal any use of '\' or '/' in path names. The file names '.' and '..'
are reserved for use in hierarchical directory structures for the current
directory and the parent of the current directory, respectively.
Unless otherwise specified in the descriptions below, data buffers may be
accessed without concern for the accessibility of the data. OS/2 will
either check buffers for accessibility and lock them, or transfer them
into locally accessible data areas.
Simple parameters will be verified by the IFS router before the FS service
routine is called.
Note: New with 2.0, some entry points need only be exported and supported
by those FSDs which desire to service the pager (PAGE I/0), UNC servers
(UNC) and/or file locking (FILE I/O). With these new entry point groups, a
FSD must export all or none of the entry points within a particular group.
These optional entry points are:
FS_ALLOCATEPAGESPACE (PAGE I/O)
FS_CANCELLOCKREQUEST (FILE I/O)
FS_DOPAGEIO (PAGE I/O)
FS_FILELOCKS (FILE I/O)
FS_OPENPAGEFILE (PAGE I/O)
FS_VERIFYUNCNAME (UNC)
Created using Inf-PHP v.2 (c) 2003 Yuri Prokushev
Created using Inf-HTML v.0.9b (c) 1995 Peter Childs