FS Helper Functions

The following table summarizes the routines that make up the File System Helper interface between FSDs and the kernel.

#	FS Helper Routine	Description
1.	FSH_ADDSHARE	Add a name to the sharing set
2.	FSH_BUFSTATE	REMOVED in OS/2 Version 2.0
3.	FSH_CALLDRIVER	Call Device Driver's Extended Strategy entry point
4.	FSH_CANONICALIZE	Convert pathname to canonical form
5.	FSH_CHECKEANAME	Check EA name validity
6.	FSH_CRITERROR	Signal a hard error to the daemon
7.	FSH_DEVIOCTL	Send IOCTL request to device driver
8.	FSH_DOVOLIO	Volume-based sector-oriented transfer
9.	FSH_DOVOLIO2	Send volume-based IOCTL request to device driver.
10.	FSH_FINDCHAR	Find first occurrence of char in string
11.	FSH_FINDDUPHVPB	Locates equivalent hVPBs
12.	FSH_FLUSHBUF	REMOVED in OS/2 Version 2.0
13.	FSH_FORCENOSWAP	Force segments permanently into memory
14.	FSH_GETBUF	REMOVED in OS/2 Version 2.0
15.	FSH_GETFIRSTOVERLAPB	REMOVED in OS/2 Version 2.0
16.	FSH_GETPRIORITY	Get current thread's I/O priority
17.	FSH_GETVOLPARM	Get VPB data from VPB handle
18.	FSH_INTERR	Signal an internal error
19.	FSH_IOBOOST	Gives the current thread an I/O priority boost
20.	FSH_IOSEMCLEAR	Clear an I/O-event semaphore
21.	FSH_ISCURDIRPREFIX	Test for a prefix of a current directory
22.	FSH_LOADCHAR	Load character from a string
23.	FSH_NAMEFROMSFN	Get the full path name from an SFN
24.	FSH_PREVCHAR	Move backward in string
25.	FSH_PROBEBUF	User address validity check
26.	FSH_QSYSINFO	Query system information
27.	FSH_REGISTERPERFCTRS	Register a FSD with PERFVIEW
28.	FSH_RELEASEBUF	REMOVED in OS/2 Version 2.0
29.	FSH_REMOVESHARE	Remove a name from the sharing set
30.	FSH_SEGALLOC	Allocate a GDT or LDT segment
31.	FSH_SEGFREE	Release a GDT or LDT segment
32.	FSH_SEGREALLOC	Change segment size
33.	FSH_SEMCLEAR	Clear a semaphore
34.	FSH_SEMREQUEST	Request a semaphore
35.	FSH_SEMSET	Set a semaphore
36.	FSH_SEMSETWAIT	Set a semaphore and wait for clear
37.	FSH_SEMWAIT	Wait for clear
38.	FSH_SETVOLUME	Force a volume to be mounted on the drive
39.	FSH_STORECHAR	Store character into string
40.	FSH_UPPERCASE	Uppercase ASCIIZ string
41.	FSH_WILDMATCH	Match using OS/2 wildcards
42.	FSH_YIELD	Yield CPU to higher priority threads

FSDs are loaded as dynamic link libraries and may import services provided by the kernel. These services can be called directly by the file system, passing the relevant parameters.

No validation of input parameters is done unless otherwise specified. The FSD calls FSH_PROBEBUF, where appropriate, before calling the FS help routine.

When any service returns an error code, the FSD must return to the caller as soon as possible and return the specific error code from the helper to the FS router.

There are many deadlocks that may occur as a result of operations issued by FSDs. OS/2 provides no means whereby deadlocks between file systems and applications can be detected.