Important: The information in this document is obsolete and should not be used for new development.
Summary of the File Manager
Pascal Summary
Constants
CONST {Gestalt constants} gestaltFSAttr = 'fs '; {file system attributes selector} gestaltFullExtFSDispatching= 0; {exports HFSDispatch traps} gestaltHasFSSpecCalls = 1; {supports FSSpec records} {directory IDs} fsRtParID = 1; {directory ID of root directory's parent} fsRtDirID = 2; {directory ID of volume's root directory} {access modes for opening files} fsCurPerm = 0; {whatever permission is allowed} fsRdPerm = 1; {read permission} fsWrPerm = 2; {write permission} fsRdWrPerm = 3; {exclusive read/write permission} fsRdWrShPerm = 4; {shared read/write permission} {file mark positioning modes} fsAtMark = 0; {at current mark} fsFromStart = 1; {set mark relative to beginning of file} fsFromLEOF = 2; {set mark relative to logical end-of-file} fsFromMark = 3; {set mark relative to current mark} rdVerify = 64; {add to above for read-verify} {values for ioSearchBits in PBCatSearch parameter block} fsSBPartialName = 1; {substring of name} fsSBFullName = 2; {full name} fsSBFlAttrib = 4; {directory flag; software lock flag} fsSBNegate = 16384; {reverse match status} {for files only} fsSBFlFndrInfo = 8; {Finder file info} fsSBFlLgLen = 32; {logical length of data fork} fsSBFlPyLen = 64; {physical length of data fork} fsSBFlRLgLen = 128; {logical length of resource fork} fsSBFlRPyLen = 256; {physical length of resource fork} fsSBFlCrDat = 512; {file creation date} fsSBFlMdDat = 1024; {file modification date} fsSBFlBkDat = 2048; {file backup date} fsSBFlXFndrInfo = 4096; {more Finder file info} fsSBFlParID = 8192; {file's parent ID} {for directories only} fsSBDrUsrWds = 8; {Finder directory info} fsSBDrNmFls = 16; {number of files in directory} fsSBDrCrDat = 512; {directory creation date} fsSBDrMdDat = 1024; {directory modification date} fsSBDrBkDat = 2048; {directory backup date} fsSBDrFndrInfo = 4096; {more Finder directory info} fsSBDrParID = 8192; {directory's parent ID} {value of vMForeignPrivID in file attributes buffer} fsUnixPriv = 1; {A/UX privilege model} {bit positions in vMAttrib field of GetVolParmsInfoBuffer} bHasBlankAccessPrivileges = 4; {volume supports inherited privileges} bHasBTreeMgr = 5; {reserved} bHasFileIDs = 6; {volume supports file ID functions} bHasCatSearch = 7; {volume supports PBCatSearch} bHasUserGroupList = 8; {volume supports AFP privileges} bHasPersonalAccessPrivileges = 9; {local file sharing is enabled} bHasFolderLock = 10; {volume supports locking of folders} bHasShortName = 11; {volume supports AFP short names} bHasDesktopMgr = 12; {volume supports Desktop Manager} bHasMoveRename = 13; {volume supports _MoveRename} bHasCopyFile = 14; {volume supports _CopyFile} bHasOpenDeny = 15; {volume supports shared access modes} bHasExtFSVol = 16; {volume is external file system volume} bNoSysDir = 17; {volume has no system directory} bAccessCntl = 18; {volume supports AFP access control} bNoBootBlks = 19; {volume is not a startup volume} bNoDeskItems = 20; {do not place objects on the desktop} bNoSwitchTo = 25; {do not switch launch to applications} bTrshOffLine = 26; {zoom volume when it is unmounted} bNoLclSync = 27; {don't let Finder change mod. date} bNoVNEdit = 28; {lock volume name} bNoMiniFndr = 29; {reserved; always 1} bLocalWList = 30; {use shared volume handle for window list} bLimitFCBs = 31; {limit file control blocks} {media type in remote mounting information} AppleShareMediaType = 'afpm'; {an AppleShare volume} {user authentication methods in AFP remote mounting information} kNoUserAuthentication = 1; {guest status; no password needed} kPassword = 2; {8-byte password} kEncryptPassword = 3; {encrypted 8-byte password} kTwoWayEncryptPassword = 6; {two-way random encryption; } { authenticate both user and server}Data Types
File System Specification Record
TYPE FSSpec = {file system specification} RECORD vRefNum: Integer; {volume reference number} parID: LongInt; {directory ID of parent directory} name: Str63; {filename or directory name} END; FSSpecPtr = ^FSSpec; FSSpecHandle = ^FSSpecPtr; FSSpecArray = ARRAY[0..0] OF FSSpec; FSSpecArrayPtr = ^FSSpecArray; FSSpecArrayHandle = ^FSSpecArrayPtr;File and Directory Parameter Blocks
TYPE ParamBlkType = (ioParam, fileParam, volumeParam, cntrlParam, slotDevParam, multiDevParam, accessParam, objParam, copyParam, wdParam, fidParam, csParam, foreignPrivsParam); ParmBlkPtr = ^ParamBlockRec; ParamBlockRec = {basic File Manager parameter block} RECORD qLink: QElemPtr; {next queue entry} qType: Integer; {queue type} ioTrap: Integer; {routine trap} ioCmdAddr: Ptr; {routine address} ioCompletion: ProcPtr; {pointer to completion routine} ioResult: OSErr; {result code} ioNamePtr: StringPtr; {pointer to pathname} ioVRefNum: Integer; {volume specification} CASE ParamBlkType OF ioParam: (ioRefNum: Integer; {file reference number} ioVersNum: SignedByte; {version number} ioPermssn: SignedByte; {read/write permission} ioMisc: Ptr; {miscellaneous} ioBuffer: Ptr; {data buffer} ioReqCount: LongInt; {requested number of bytes} ioActCount: LongInt; {actual number of bytes} ioPosMode: Integer; {positioning mode and newline char.} ioPosOffset: LongInt); {positioning offset} fileParam: (ioFRefNum: Integer; {file reference number} ioFVersNum: SignedByte; {file version number (unused)} filler1: SignedByte; {reserved} ioFDirIndex: Integer; {directory index} ioFlAttrib: SignedByte; {file attributes} ioFlVersNum: SignedByte; {file version number (unused)} ioFlFndrInfo: FInfo; {information used by the Finder} ioFlNum: LongInt; {file ID} ioFlStBlk: Integer; {first alloc. blk. of data fork} ioFlLgLen: LongInt; {logical EOF of data fork} ioFlPyLen: LongInt; {physical EOF of data fork} ioFlRStBlk: Integer; {first alloc. blk. of resource fork} ioFlRLgLen: LongInt; {logical EOF of resource fork} ioFlRPyLen: LongInt; {physical EOF of resource fork} ioFlCrDat: LongInt; {date and time of creation} ioFlMdDat: LongInt); {date and time of last modification} volumeParam: (filler2: LongInt; {reserved} ioVolIndex: Integer; {volume index} ioVCrDate: LongInt; {date and time of initialization} ioVLsBkUp: LongInt; {date and time of last modification} ioVAtrb: Integer; {volume attributes} ioVNmFls: Integer; {number of files in root directory} ioVDirSt: Integer; {first block of directory} ioVBlLn: Integer; {length of directory in blocks} ioVNmAlBlks: Integer; {number of allocation blocks} ioVAlBlkSiz: LongInt; {size of allocation blocks} ioVClpSiz: LongInt; {default clump size} ioAlBlSt: Integer; {first block in block map} ioVNxtFNum: LongInt; {next unused file ID} ioVFrBlk: Integer); {number of unused allocation blocks} END; HParmBlkPtr = ^HParamBlockRec; HParamBlockRec = {HFS parameter block} RECORD qLink: QElemPtr; {next queue entry} qType: Integer; {queue type} ioTrap: Integer; {routine trap} ioCmdAddr: Ptr; {routine address} ioCompletion: ProcPtr; {pointer to completion routine} ioResult: OSErr; {result code} ioNamePtr: StringPtr; {pointer to pathname} ioVRefNum: Integer; {volume specification} CASE ParamBlkType OF ioParam: (ioRefNum: Integer; {file reference number} ioVersNum: SignedByte; {version number} ioPermssn: SignedByte; {read/write permission} ioMisc: Ptr; {miscellaneous} ioBuffer: Ptr; {data buffer} ioReqCount: LongInt; {requested number of bytes} ioActCount: LongInt; {actual number of bytes} ioPosMode: Integer; {positioning mode and newline char.} ioPosOffset: LongInt); {positioning offset} fileParam: (ioFRefNum: Integer; {file reference number} ioFVersNum: SignedByte; {file version number (unused)} filler1: SignedByte; {reserved} ioFDirIndex: Integer; {directory index} ioFlAttrib: SignedByte; {file attributes} ioFlVersNum: SignedByte; {file version number (unused)} ioFlFndrInfo: FInfo; {information used by the Finder} ioDirID: LongInt; {directory ID or file ID} ioFlStBlk: Integer; {first alloc. blk. of data fork} ioFlLgLen: LongInt; {logical EOF of data fork} ioFlPyLen: LongInt; {physical EOF of data fork} ioFlRStBlk: Integer; {first alloc. blk. of resource fork} ioFlRLgLen: LongInt; {logical EOF of resource fork} ioFlRPyLen: LongInt; {physical EOF of resource fork} ioFlCrDat: LongInt; {date and time of creation} ioFlMdDat: LongInt); {date and time of last modification} volumeParam: (filler2: LongInt; {reserved} ioVolIndex: Integer; {volume index} ioVCrDate: LongInt; {date and time of initialization} ioVLsMod: LongInt; {date and time of last modification} ioVAtrb: Integer; {volume attributes} ioVNmFls: Integer; {number of files in root directory} ioVBitMap: Integer; {first block of volume bitmap} ioAllocPtr: Integer; {first block of next new file} ioVNmAlBlks: Integer; {number of allocation blocks} ioVAlBlkSiz: LongInt; {size of allocation blocks} ioVClpSiz: LongInt; {default clump size} ioAlBlSt: Integer; {first block in volume map} ioVNxtCNID: LongInt; {next unused node ID} ioVFrBlk: Integer; {number of unused allocation blocks} ioVSigWord: Integer; {volume signature} ioVDrvInfo: Integer; {drive number} ioVDRefNum: Integer; {driver reference number} ioVFSID: Integer; {file-system identifier} ioVBkUp: LongInt; {date and time of last backup} ioVSeqNum: Integer; {used internally} ioVWrCnt: LongInt; {volume write count} ioVFilCnt: LongInt; {number of files on volume} ioVDirCnt: LongInt; {number of directories on volume} ioVFndrInfo: ARRAY[1..8] OF LongInt); {information used by the Finder} accessParam: (filler3: Integer; {reserved} ioDenyModes: Integer; {access mode information} filler4: Integer; {reserved} filler5: SignedByte; {reserved} ioACUser: SignedByte; {user access rights} filler6: LongInt; {reserved} ioACOwnerID: LongInt; {owner ID} ioACGroupID: LongInt; {group ID} ioACAccess: LongInt); {directory access rights} objParam: (filler7: Integer; {reserved} ioObjType: Integer; {function code} ioObjNamePtr: Ptr; {ptr to returned creator/group name} ioObjID: LongInt); {creator/group ID} copyParam: (ioDstVRefNum: Integer; {destination volume identifier} filler8: Integer; {reserved} ioNewName: Ptr; {pointer to destination pathname} ioCopyName: Ptr; {pointer to optional name} ioNewDirID: LongInt); {destination directory ID} wdParam: (filler9: Integer; {reserved} ioWDIndex: Integer; {working directory index} ioWDProcID: LongInt; {working directory user identifier} ioWDVRefNum: Integer; {working directory's vol. ref. num.} filler10: Integer; {reserved} filler11: LongInt; {reserved} filler12: LongInt; {reserved} filler13: LongInt; {reserved} ioWDDirID: LongInt); {working directory's directory ID} fidParam: (filler14: LongInt; {reserved} ioDestNamePtr: StringPtr; {pointer to destination filename} filler15: LongInt; {reserved} ioDestDirID: LongInt; {destination parent directory ID} filler16: LongInt; {reserved} filler17: LongInt; {reserved} ioSrcDirID: LongInt; {source parent directory ID} filler18: Integer; {reserved} ioFileID: LongInt); {file ID} csParam: (ioMatchPtr: FSSpecArrayPtr;{pointer to array of matches} ioReqMatchCount: LongInt; {max. number of matches to return} ioActMatchCount: LongInt; {actual number of matches} ioSearchBits: LongInt; {enable bits for matching rules} ioSearchInfo1: CInfoPBPtr; {pointer to values and lower bounds} ioSearchInfo2: CInfoPBPtr; {pointer to masks and upper bounds} ioSearchTime: LongInt; {maximum time to search} ioCatPosition: CatPositionRec;{current catalog position} ioOptBuffer: Ptr; {pointer to optional read buffer} ioOptBufSize: LongInt); {length of optional read buffer} foreignPrivParam: (filler21: LongInt; {reserved} filler22: LongInt; {reserved} ioForeignPrivBuffer: Ptr; {privileges data buffer} ioForeignPrivReqCount: LongInt; {size of buffer} ioForeignPrivActCount: LongInt; {amount of buffer used} filler23: LongInt; {reserved} ioForeignPrivDirID: LongInt; {parent directory ID of } { foreign file or directory} ioForeignPrivInfo1: LongInt; {privileges data} ioForeignPrivInfo2: LongInt; {privileges data} ioForeignPrivInfo3: LongInt; {privileges data} ioForeignPrivInfo4: LongInt); {privileges data} END;Catalog Information Parameter Blocks
TYPE CInfoType = (hfileInfo, dirInfo); CInfoPBPtr = ^CInfoPBRec; CInfoPBRec = {catalog information parameter block} RECORD qLink: QElemPtr; {next queue entry} qType: Integer; {queue type} ioTrap: Integer; {routine trap} ioCmdAddr: Ptr; {routine address} ioCompletion: ProcPtr; {pointer to completion routine} ioResult: OSErr; {result code} ioNamePtr: StringPtr; {pointer to pathname} ioVRefNum: Integer; {volume specification} ioFRefNum: Integer; {file reference number} ioFVersNum: SignedByte; {version number} filler1: SignedByte; {reserved} ioFDirIndex: Integer; {directory index} ioFlAttrib: SignedByte; {file or directory attributes} ioACUser: SignedByte; {directory access rights} CASE CInfoType OF hFileInfo: (ioFlFndrInfo: FInfo; {information used by the Finder} ioDirID: LongInt; {directory ID or file ID} ioFlStBlk: Integer; {first alloc. blk. of data fork} ioFlLgLen: LongInt; {logical EOF of data fork} ioFlPyLen: LongInt; {physical EOF of data fork} ioFlRStBlk: Integer; {first alloc. blk. of resource fork} ioFlRLgLen: LongInt; {logical EOF of resource fork} ioFlRPyLen: LongInt; {physical EOF of resource fork} ioFlCrDat: LongInt; {date and time of creation} ioFlMdDat: LongInt; {date and time of last modification} ioFlBkDat: LongInt; {date and time of last backup} ioFlXFndrInfo: FXInfo; {additional Finder information} ioFlParID: LongInt; {file parent directory ID} ioFlClpSiz: LongInt); {file's clump size} dirInfo: (ioDrUsrWds: DInfo; {information used by the Finder} ioDrDirID: LongInt; {directory ID} ioDrNmFls: Integer; {number of files in directory} filler3: ARRAY[1..9] OF Integer; ioDrCrDat: LongInt; {date and time of creation} ioDrMdDat: LongInt; {date and time of last modification} ioDrBkDat: LongInt; {date and time of last backup} ioDrFndrInfo: DXInfo; {additional Finder information} ioDrParID: LongInt); {directory's parent directory ID} END;Catalog Position Record
TYPE CatPositionRec = {catalog position record} RECORD initialize: LongInt; {starting point} priv: ARRAY[1..6] OF Integer; {private data} END;Catalog Move Parameter Block
TYPE CMovePBPtr = ^CMovePBRec; CMovePBRec = {catalog move parameter block} RECORD qLink: QElemPtr; {next queue entry} qType: Integer; {queue type} ioTrap: Integer; {routine trap} ioCmdAddr: Ptr; {routine address} ioCompletion: ProcPtr; {pointer to completion routine} ioResult: OSErr; {result code} ioNamePtr: StringPtr; {pointer to pathname} ioVRefNum: Integer; {volume specification} filler1: LongInt; {reserved} ioNewName: StringPtr; {name of new directory} filler2: LongInt; {reserved} ioNewDirID: LongInt; {directory ID of new directory} filler3: ARRAY[1..2] OF LongInt; {reserved} ioDirID: LongInt; {directory ID of current directory} END;Working Directory Parameter Block
TYPE WDPBPtr = ^WDPBRec; WDPBRec = {working directory parameter block} RECORD qLink: QElemPtr; {next queue entry} qType: Integer; {queue type} ioTrap: Integer; {routine trap} ioCmdAddr: Ptr; {routine address} ioCompletion: ProcPtr; {pointer to completion routine} ioResult: OSErr; {result code} ioNamePtr: StringPtr; {pointer to pathname} ioVRefNum: Integer; {volume specification} filler1: Integer; {reserved} ioWDIndex: Integer; {working directory index} ioWDProcID: LongInt; {working directory user identifier} ioWDVRefNum: Integer; {working directory's vol. ref. num.} filler2: ARRAY[1..7] OF Integer; {reserved} ioWDDirID: LongInt; {working directory's directory ID} END;File Control Block Parameter Block
TYPE FCBPBPtr = ^FCBPBRec; FCBPBRec = {file control block parameter block} RECORD qLink: QElemPtr; {next queue entry} qType: Integer; {queue type} ioTrap: Integer; {routine trap} ioCmdAddr: Ptr; {routine address} ioCompletion: ProcPtr; {pointer to completion routine} ioResult: OSErr; {result code} ioNamePtr: StringPtr; {pointer to pathname} ioVRefNum: Integer; {volume specification} ioRefNum: Integer; {file reference number} filler: Integer; {reserved} ioFCBIndx: Integer; {FCB index} filler1: Integer; {reserved} ioFCBFlNm: LongInt; {file ID} ioFCBFlags: Integer; {flags} ioFCBStBlk: Integer; {first allocation block of file} ioFCBEOF: LongInt; {logical end-of-file} ioFCBPLen: LongInt; {physical end-of-file} ioFCBCrPs: LongInt; {position of the file mark} ioFCBVRefNum: Integer; {volume reference number} ioFCBClpSiz: LongInt; {file's clump size} ioFCBParID: LongInt; {parent directory ID} END;Volume Attributes Buffer
TYPE GetVolParmsInfoBuffer = RECORD vMVersion: Integer; {version number} vMAttrib: LongInt; {volume attributes} vMLocalHand: Handle; {reserved} vMServerAdr: LongInt; {network server address} vMVolumeGrade: LongInt; {relative speed rating} vMForeignPrivID: Integer; {foreign privilege model} END;Volume Mounting Information Records
TYPE VolumeType = OSType; VolMountInfoPtr = ^VolMountInfoHeader; VolMountInfoHeader = {volume mounting information} RECORD length: Integer; {length of mounting information} media: VolumeType; {type of volume} END; AFPVolMountInfoPtr = ^AFPVolMountInfo; AFPVolMountInfo = {AFP volume mounting information} RECORD length: Integer; {length of mounting information} media: VolumeType; {type of volume} flags: Integer; {reserved; must be set to 0} nbpInterval: SignedByte; {NBP retry interval} nbpCount: SignedByte; {NBP retry count} uamType: Integer; {user authentication method} zoneNameOffset: Integer; {offset to zone name} serverNameOffset: Integer; {offset server name} volNameOffset: Integer; {offset to volume name} userNameOffset: Integer; {offset to user name} userPasswordOffset: Integer; {offset to user password} volPasswordOffset: Integer; {offset to volume password} AFPData: PACKED ARRAY[1..144] OF CHAR; {standard AFP mounting info} END;Internal Data Types
Volume and File Control Blocks
TYPE VCB = {volume control block} RECORD qLink: QElemPtr; {next queue entry} qType: Integer; {queue type} vcbFlags: Integer; {volume flags (bit 15 = 1 if dirty)} vcbSigWord: Integer; {volume signature} vcbCrDate: LongInt; {date and time of volume creation} vcbLsMod: LongInt; {date and time of last modification} vcbAtrb: Integer; {volume attributes} vcbNmFls: Integer; {number of files in root directory} vcbVBMSt: Integer; {first block of volume bitmap} vcbAllocPtr: Integer; {start of next allocation search} vcbNmAlBlks: Integer; {number of allocation blocks in volume} vcbAlBlkSiz: LongInt; {size (in bytes) of allocation blocks} vcbClpSiz: LongInt; {default clump size} vcbAlBlSt: Integer; {first allocation block in volume} vcbNxtCNID: LongInt; {next unused catalog node ID} vcbFreeBks: Integer; {number of unused allocation blocks} vcbVN: String[27]; {volume name} vcbDrvNum: Integer; {drive number} vcbDRefNum: Integer; {driver reference number} vcbFSID: Integer; {file-system identifier} vcbVRefNum: Integer; {volume reference number} vcbMAdr: Ptr; {used internally} vcbBufAdr: Ptr; {used internally} vcbMLen: Integer; {used internally} vcbDirIndex: Integer; {used internally} vcbDirBlk: Integer; {used internally} vcbVolBkUp: LongInt; {date and time of last backup} vcbVSeqNum: Integer; {volume backup sequence number} vcbWrCnt: LongInt; {volume write count} vcbXTClpSiz: LongInt; {clump size for extents overflow file} vcbCTClpSiz: LongInt; {clump size for catalog file} vcbNmRtDirs: Integer; {number of directories in root dir.} vcbFilCnt: LongInt; {number of files in volume} vcbDirCnt: LongInt; {number of directories in volume} vcbFndrInfo: ARRAY[1..8] OF LongInt; {information used by the Finder} vcbVCSize: Integer; {used internally} vcbVBMCSiz: Integer; {used internally} vcbCtlCSiz: Integer; {used internally} vcbXTAlBlks: Integer; {size of extents overflow file} vcbCTAlBlks: Integer; {size of catalog file} vcbXTRef: Integer; {ref. num. for extents overflow file} vcbCTRef: Integer; {ref. num. for catalog file} vcbCtlBuf: Ptr; {ptr. to extents and catalog caches} vcbDirIDM: LongInt; {directory last searched} vcbOffsM: Integer; {offspring index at last search} END; FCB = {file control block} RECORD fcbFlNum: LongInt; {file ID} fcbFlags: Integer; {file flags} fcbSBlk: Integer; {first allocation block of file} fcbEOF: LongInt; {logical end-of-file} fcbPLen: LongInt; {physical end-of-file} fcbCrPs: LongInt; {current file mark position} fcbVPtr: Ptr; {pointer to volume control block} fcbBfAdr: Ptr; {pointer to access path buffer} fcbFlPos: Integer; {reserved} fcbClmpSize: LongInt; {file clump size} fcbBTCBPtr: Ptr; {pointer to B*-tree control block} fcbExtRec: ExtDataRec; {first three file extents} fcbFType: LongInt; {file's four Finder type bytes} fcbCatPos: LongInt; {catalog hint for use on Close} fcbDirID: LongInt; {file's parent directory ID} fcbCName: String[31]; {name of file} END;Drive Queue Elements
TYPE DrvQEl = {drive queue element} RECORD qLink: QElemPtr; {next queue entry} qType: Integer; {flag for dQDrvSz and dQDrvSz2} dQDrive: Integer; {drive number} dQRefNum: Integer; {driver reference number} dQFSID: Integer; {file-system identifier} dQDrvSz: Integer; {number of logical blocks on drive} dQDrvSz2: Integer; {additional field for large drives} END;High-Level File Access Routines
Reading, Writing, and Closing Files
FUNCTION FSRead (refNum: Integer; VAR count: LongInt; buffPtr: Ptr): OSErr; FUNCTION FSWrite (refNum: Integer; VAR count: LongInt; buffPtr: Ptr): OSErr; FUNCTION FSClose (refNum: Integer): OSErr;Manipulating the File Mark
FUNCTION GetFPos (refNum: Integer; VAR filePos: LongInt): OSErr; FUNCTION SetFPos (refNum: Integer; posMode: Integer; posOff: LongInt): OSErr;Manipulating the End-of-File
FUNCTION GetEOF (refNum: Integer; VAR logEOF: LongInt): OSErr; FUNCTION SetEOF (refNum: Integer; logEOF: LongInt): OSErr;Allocating File Blocks
FUNCTION Allocate (refNum: Integer; VAR count: LongInt): OSErr; FUNCTION AllocContig (refNum: Integer; VAR count: LongInt): OSErr;Low-Level File Access Routines
Reading, Writing, and Closing Files
FUNCTION PBRead (paramBlock: ParmBlkPtr; async: Boolean): OSErr; FUNCTION PBReadSync (paramBlock: ParmBlkPtr): OSErr; FUNCTION PBReadAsync (paramBlock: ParmBlkPtr): OSErr; FUNCTION PBWrite (paramBlock: ParmBlkPtr; async: Boolean): OSErr; FUNCTION PBWriteSync (paramBlock: ParmBlkPtr): OSErr; FUNCTION PBWriteAsync (paramBlock: ParmBlkPtr): OSErr; FUNCTION PBClose (paramBlock: ParmBlkPtr; async: Boolean): OSErr; FUNCTION PBCloseSync (paramBlock: ParmBlkPtr): OSErr; FUNCTION PBCloseAsync (paramBlock: ParmBlkPtr): OSErr;Manipulating the File Mark
FUNCTION PBGetFPos (paramBlock: ParmBlkPtr; async: Boolean): OSErr; FUNCTION PBGetFPosSync (paramBlock: ParmBlkPtr): OSErr; FUNCTION PBGetFPosAsync(paramBlock: ParmBlkPtr): OSErr; FUNCTION PBSetFPos (paramBlock: ParmBlkPtr; async: Boolean): OSErr; FUNCTION PBSetFPosSync (paramBlock: ParmBlkPtr): OSErr; FUNCTION PBSetFPosAsync (paramBlock: ParmBlkPtr): OSErr;Manipulating the End-of-File
FUNCTION PBGetEOF (paramBlock: ParmBlkPtr; async: Boolean): OSErr; FUNCTION PBGetEOFSync (paramBlock: ParmBlkPtr): OSErr; FUNCTION PBGetEOFAsync (paramBlock: ParmBlkPtr): OSErr; FUNCTION PBSetEOF (paramBlock: ParmBlkPtr; async: Boolean): OSErr; FUNCTION PBSetEOFSync (paramBlock: ParmBlkPtr): OSErr; FUNCTION PBSetEOFAsync (paramBlock: ParmBlkPtr): OSErr;Allocating File Blocks
FUNCTION PBAllocate (paramBlock: ParmBlkPtr; async: Boolean): OSErr; FUNCTION PBAllocateSync (paramBlock: ParmBlkPtr): OSErr; FUNCTION PBAllocateAsync (paramBlock: ParmBlkPtr): OSErr; FUNCTION PBAllocContig (paramBlock: ParmBlkPtr; async: Boolean): OSErr; FUNCTION PBAllocContigSync (paramBlock: ParmBlkPtr): OSErr; FUNCTION PBAllocContigAsync (paramBlock: ParmBlkPtr): OSErr;Updating Files
FUNCTION PBFlushFile (paramBlock: ParmBlkPtr; async: Boolean): OSErr; FUNCTION PBFlushFileSync (paramBlock: ParmBlkPtr): OSErr; FUNCTION PBFlushFileAsync (paramBlock: ParmBlkPtr): OSErr;High-Level Volume Access Routines
Unmounting Volumes
FUNCTION UnmountVol (volName: StringPtr; vRefNum: Integer): OSErr; FUNCTION Eject (volName: StringPtr; vRefNum: Integer): OSErr;Updating Volumes
FUNCTION FlushVol (volName: StringPtr; vRefNum: Integer): OSErr;Manipulating the Default Volume
FUNCTION GetVol (volName: StringPtr; VAR vRefNum: Integer): OSErr; FUNCTION SetVol (volName: StringPtr; vRefNum: Integer): OSErr; FUNCTION HGetVol (volName: StringPtr; VAR vRefNum: Integer; VAR dirID: LongInt): OSErr; FUNCTION HSetVol (volName: StringPtr; vRefNum: Integer; dirID: LongInt): OSErr;Obtaining Volume Information
FUNCTION GetVInfo (drvNum: Integer; volName: StringPtr; VAR vRefNum: Integer; VAR freeBytes: LongInt): OSErr; FUNCTION GetVRefNum (refNum: Integer; VAR vRefNum: Integer): OSErr;Low-Level Volume Access Routines
Mounting and Unmounting Volumes
FUNCTION PBMountVol (paramBlock: ParmBlkPtr): OSErr; FUNCTION PBUnmountVol (paramBlock: ParmBlkPtr): OSErr; FUNCTION PBEject (paramBlock: ParmBlkPtr): OSErr; FUNCTION PBOffLine (paramBlock: ParmBlkPtr): OSErr;Updating Volumes
FUNCTION PBFlushVol (paramBlock: ParmBlkPtr; async: Boolean): OSErr; FUNCTION PBFlushVolSync (paramBlock: ParmBlkPtr): OSErr; FUNCTION PBFlushVolAsync (paramBlock: ParmBlkPtr): OSErr;Obtaining Volume Information
FUNCTION PBHGetVInfo (paramBlock: HParmBlkPtr; async: Boolean): OSErr; FUNCTION PBHGetVInfoSync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBHGetVInfoAsync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBSetVInfo (paramBlock: HParmBlkPtr; async: Boolean): OSErr; FUNCTION PBSetVInfoSync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBSetVInfoAsync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBHGetVolParms (paramBlock: HParmBlkPtr; async: Boolean): OSErr; FUNCTION PBHGetVolParmsSync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBHGetVolParmsAsync (paramBlock: HParmBlkPtr): OSErr;Manipulating the Default Volume
FUNCTION PBGetVol (paramBlock: ParmBlkPtr; async: Boolean): OSErr; FUNCTION PBGetVolSync (paramBlock: ParmBlkPtr): OSErr; FUNCTION PBGetVolAsync (paramBlock: ParmBlkPtr): OSErr; FUNCTION PBSetVol (paramBlock: ParmBlkPtr; async: Boolean): OSErr; FUNCTION PBSetVolSync (paramBlock: ParmBlkPtr): OSErr; FUNCTION PBSetVolAsync (paramBlock: ParmBlkPtr): OSErr; FUNCTION PBHGetVol (paramBlock: WDPBPtr; async: Boolean): OSErr; FUNCTION PBHGetVolSync (paramBlock: WDPBPtr): OSErr; FUNCTION PBHGetVolAsync (paramBlock: WDPBPtr): OSErr; FUNCTION PBHSetVol (paramBlock: WDPBPtr; async: Boolean): OSErr; FUNCTION PBHSetVolSync (paramBlock: WDPBPtr): OSErr; FUNCTION PBHSetVolAsync (paramBlock: WDPBPtr): OSErr;File System Specification Routines
Opening Files
FUNCTION FSpOpenDF (spec: FSSpec; permission: SignedByte; VAR refNum: Integer): OSErr; FUNCTION FSpOpenRF (spec: FSSpec; permission: SignedByte; VAR refNum: Integer): OSErr;Creating and Deleting Files and Directories
FUNCTION FSpCreate (spec: FSSpec; creator: OSType; fileType: OSType; scriptTag: ScriptCode): OSErr; FUNCTION FSpDirCreate (spec: FSSpec; scriptTag: ScriptCode; VAR createdDirID: LongInt): OSErr; FUNCTION FSpDelete (spec: FSSpec): OSErr;Accessing Information About Files and Directories
FUNCTION FSpGetFInfo (spec: FSSpec; VAR fndrInfo: FInfo): OSErr; FUNCTION FSpSetFInfo (spec: FSSpec; fndrInfo: FInfo): OSErr; FUNCTION FSpSetFLock (spec: FSSpec): OSErr; FUNCTION FSpRstFLock (spec: FSSpec): OSErr; FUNCTION FSpRename (spec: FSSpec; newName: Str255): OSErr;Moving Files or Directories
FUNCTION FSpCatMove (source: FSSpec; dest: FSSpec): OSErr;Exchanging the Data in Two Files
FUNCTION FSpExchangeFiles(source: FSSpec; dest: FSSpec): OSErr;Creating File System Specifications
FUNCTION FSMakeFSSpec (vRefNum: Integer; dirID: LongInt; fileName: Str255; VAR spec: FSSpec): OSErr; FUNCTION PBMakeFSSpec (paramBlock: HParmBlkPtr; async: Boolean): OSErr; FUNCTION PBMakeFSSpecSync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBMakeFSSpecAsync (paramBlock: HParmBlkPtr): OSErr;High-Level HFS Routines
Opening Files
FUNCTION HOpenDF (vRefNum: Integer; dirID: LongInt; fileName: Str255; permission: SignedByte; VAR refNum: Integer): OSErr; FUNCTION HOpenRF (vRefNum: Integer; dirID: LongInt; fileName: Str255; permission: SignedByte; VAR refNum: Integer): OSErr; FUNCTION HOpen (vRefNum: Integer; dirID: LongInt; fileName: Str255; permission: SignedByte; VAR refNum: Integer): OSErr;Creating and Deleting Files and Directories
FUNCTION HCreate (vRefNum: Integer; dirID: LongInt; fileName: Str255; creator: OSType; fileType: OSType): OSErr; FUNCTION DirCreate (vRefNum: Integer; parentDirID: LongInt; directoryName: Str255; VAR createdDirID: LongInt): OSErr; FUNCTION HDelete (vRefNum: Integer; dirID: LongInt; fileName: Str255): OSErr;Accessing Information About Files and Directories
FUNCTION HGetFInfo (vRefNum: Integer; dirID: LongInt; fileName: Str255; VAR fndrInfo: FInfo): OSErr; FUNCTION HSetFInfo (vRefNum: Integer; dirID: LongInt; fileName: Str255; fndrInfo: FInfo): OSErr; FUNCTION HSetFLock (vRefNum: Integer; dirID: LongInt; fileName: Str255): OSErr; FUNCTION HRstFLock (vRefNum: Integer; dirID: LongInt; fileName: Str255): OSErr; FUNCTION HRename (vRefNum: Integer; dirID: LongInt; oldName: Str255; newName: Str255): OSErr;Moving Files or Directories
FUNCTION CatMove (vRefNum: Integer; dirID: LongInt; oldName: Str255; newDirID: LongInt; newName: Str255): OSErr;Maintaining Working Directories
FUNCTION OpenWD (vRefNum: Integer; dirID: LongInt; procID: LongInt; VAR wdRefNum: Integer): OSErr; FUNCTION CloseWD (wdRefNum: Integer): OSErr; FUNCTION GetWDInfo (wdRefNum: Integer; VAR vRefNum: Integer; VAR dirID: LongInt; VAR procID: LongInt): OSErr;Low-Level HFS Routines
Opening Files
FUNCTION PBHOpenDF (paramBlock: HParmBlkPtr; async: Boolean): OSErr; FUNCTION PBHOpenDFSync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBHOpenDFAsync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBHOpenRF (paramBlock: HParmBlkPtr; async: Boolean): OSErr; FUNCTION PBHOpenRFSync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBHOpenRFAsync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBHOpen (paramBlock: HParmBlkPtr; async: Boolean): OSErr; FUNCTION PBHOpenSync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBHOpenAsync (paramBlock: HParmBlkPtr): OSErr;Creating and Deleting Files and Directories
FUNCTION PBHCreate (paramBlock: HParmBlkPtr; async: Boolean): OSErr; FUNCTION PBHCreateSync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBHCreateAsync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBDirCreate (paramBlock: HParmBlkPtr; async: Boolean): OSErr; FUNCTION PBDirCreateSync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBDirCreateAsync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBHDelete (paramBlock: HParmBlkPtr; async: Boolean): OSErr; FUNCTION PBHDeleteSync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBHDeleteAsync (paramBlock: HParmBlkPtr): OSErr;Accessing Information About Files and Directories
FUNCTION PBGetCatInfo (paramBlock: CInfoPBPtr; async: Boolean): OSErr; FUNCTION PBGetCatInfoSync (paramBlock: CInfoPBPtr): OSErr; FUNCTION PBGetCatInfoAsync (paramBlock: CInfoPBPtr): OSErr; FUNCTION PBSetCatInfo (paramBlock: CInfoPBPtr; async: Boolean): OSErr; FUNCTION PBSetCatInfoSync (paramBlock: CInfoPBPtr): OSErr; FUNCTION PBSetCatInfoAsync (paramBlock: CInfoPBPtr): OSErr; FUNCTION PBHGetFInfo (paramBlock: HParmBlkPtr; async: Boolean): OSErr; FUNCTION PBHGetFInfoSync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBHGetFInfoAsync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBHSetFInfo (paramBlock: HParmBlkPtr; async: Boolean): OSErr; FUNCTION PBHSetFInfoSync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBHSetFInfoAsync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBHSetFLock (paramBlock: HParmBlkPtr; async: Boolean): OSErr; FUNCTION PBHSetFLockSync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBHSetFLockAsync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBHRstFLock (paramBlock: HParmBlkPtr; async: Boolean): OSErr; FUNCTION PBHRstFLockSync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBHRstFLockAsync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBHRename (paramBlock: HParmBlkPtr; async: Boolean): OSErr; FUNCTION PBHRenameSync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBHRenameAsync (paramBlock: HParmBlkPtr): OSErr;Moving Files or Directories
FUNCTION PBCatMove (paramBlock: CMovePBPtr; async: Boolean): OSErr; FUNCTION PBCatMoveSync (paramBlock: CMovePBPtr): OSErr; FUNCTION PBCatMoveAsync (paramBlock: CMovePBPtr): OSErr;Maintaining Working Directories
FUNCTION PBOpenWD (paramBlock: WDPBPtr; async: Boolean): OSErr; FUNCTION PBOpenWDSync (paramBlock: WDPBPtr): OSErr; FUNCTION PBOpenWDAsync (paramBlock: WDPBPtr): OSErr; FUNCTION PBCloseWD (paramBlock: WDPBPtr; async: Boolean): OSErr; FUNCTION PBCloseWDSync (paramBlock: WDPBPtr): OSErr; FUNCTION PBCloseWDAsync (paramBlock: WDPBPtr): OSErr; FUNCTION PBGetWDInfo (paramBlock: WDPBPtr; async: Boolean): OSErr; FUNCTION PBGetWDInfoSync (paramBlock: WDPBPtr): OSErr; FUNCTION PBGetWDInfoAsync (paramBlock: WDPBPtr): OSErr;Searching a Catalog
FUNCTION PBCatSearch (paramBlock: HParmBlkPtr; async: Boolean): OSErr; FUNCTION PBCatSearchSync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBCatSearchAsync (paramBlock: HParmBlkPtr): OSErr;Exchanging the Data in Two Files
FUNCTION PBExchangeFiles (paramBlock: HParmBlkPtr; async: Boolean): OSErr; FUNCTION PBExchangeFilesSync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBExchangeFilesAsync (paramBlock: HParmBlkPtr): OSErr;Shared Environment Routines
Opening Files While Denying Access
FUNCTION PBHOpenDeny (paramBlock: HParmBlkPtr; async: Boolean): OSErr; FUNCTION PBHOpenDenySync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBHOpenDenyAsync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBHOpenRFDeny (paramBlock: HParmBlkPtr; async: Boolean): OSErr; FUNCTION PBHOpenRFDenySync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBHOpenRFDenyAsync (paramBlock: HParmBlkPtr): OSErr;Locking and Unlocking File Ranges
FUNCTION PBLockRange (paramBlock: ParmBlkPtr; async: Boolean): OSErr; FUNCTION PBLockRangeSync (paramBlock: ParmBlkPtr): OSErr; FUNCTION PBLockRangeAsync (paramBlock: ParmBlkPtr): OSErr; FUNCTION PBUnlockRange (paramBlock: ParmBlkPtr; async: Boolean): OSErr; FUNCTION PBUnlockRangeSync (paramBlock: ParmBlkPtr): OSErr; FUNCTION PBUnlockRangeAsync (paramBlock: ParmBlkPtr): OSErr;Manipulating Share Points
FUNCTION PBShare (paramBlock: HParmBlkPtr; async: Boolean): OSErr; FUNCTION PBShareSync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBShareAsync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBUnshare (paramBlock: HParmBlkPtr; async: Boolean): OSErr; FUNCTION PBUnshareSync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBUnshareAsync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBGetUGEntry (paramBlock: HParmBlkPtr; async: Boolean): OSErr; FUNCTION PBGetUGEntrySync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBGetUGEntryAsync (paramBlock: HParmBlkPtr): OSErr;Controlling Directory Access
FUNCTION PBHGetDirAccess (paramBlock: HParmBlkPtr; async: Boolean): OSErr; FUNCTION PBHGetDirAccessSync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBHGetDirAccessAsync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBHSetDirAccess (paramBlock: HParmBlkPtr; async: Boolean): OSErr; FUNCTION PBHSetDirAccessSync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBHSetDirAccessAsync (paramBlock: HParmBlkPtr): OSErr;Mounting Volumes
FUNCTION PBGetVolMountInfoSize (paramBlock: ParmBlkPtr): OSErr; FUNCTION PBGetVolMountInfo (paramBlock: ParmBlkPtr): OSErr; FUNCTION PBVolumeMount (paramBlock: ParmBlkPtr): OSErr;Controlling Login Access
FUNCTION PBHGetLogInInfo (paramBlock: HParmBlkPtr; async: Boolean): OSErr; FUNCTION PBHGetLogInInfoSync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBHGetLogInInfoAsync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBHMapID (paramBlock: HParmBlkPtr; async: Boolean): OSErr; FUNCTION PBHMapIDSync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBHMapIDAsync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBHMapName (paramBlock: HParmBlkPtr; async: Boolean): OSErr; FUNCTION PBHMapNameSync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBHMapNameAsync (paramBlock: HParmBlkPtr): OSErr;Copying and Moving Files
FUNCTION PBHCopyFile (paramBlock: HParmBlkPtr; async: Boolean): OSErr; FUNCTION PBHCopyFileSync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBHCopyFileAsync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBHMoveRename (paramBlock: HParmBlkPtr; async: Boolean): OSErr; FUNCTION PBHMoveRenameSync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBHMoveRenameAsync (paramBlock: HParmBlkPtr): OSErr;File ID Routines
Resolving File ID References
FUNCTION PBResolveFileIDRef (paramBlock: HParmBlkPtr; async: Boolean): OSErr; FUNCTION PBResolveFileIDRefSync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBResolveFileIDRefAsync (paramBlock: HParmBlkPtr): OSErr;Creating and Deleting File ID References
FUNCTION PBCreateFileIDRef (paramBlock: HParmBlkPtr; async: Boolean): OSErr; FUNCTION PBCreateFileIDRefSync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBCreateFileIDRefAsync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBDeleteFileIDRef (paramBlock: HParmBlkPtr; async: Boolean): OSErr; FUNCTION PBDeleteFileIDRefSync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBDeleteFileIDRefAsync (paramBlock: HParmBlkPtr): OSErr;Foreign File System Routines
Accessing Privilege Information in Foreign File Systems
FUNCTION PBGetForeignPrivs (paramBlock: HParmBlkPtr; async: Boolean): OSErr; FUNCTION PBGetForeignPrivsSync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBGetForeignPrivsAsync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBSetForeignPrivs (paramBlock: HParmBlkPtr; async: Boolean): OSErr; FUNCTION PBSetForeignPrivsSync (paramBlock: HParmBlkPtr): OSErr; FUNCTION PBSetForeignPrivsAsync (paramBlock: HParmBlkPtr): OSErr;Utility Routines
Obtaining Queue Headers
FUNCTION GetFSQHdr : QHdrPtr; FUNCTION GetVCBQHdr : QHdrPtr; FUNCTION GetDrvQHdr : QHdrPtr;Adding a Drive
PROCEDURE AddDrive (drvrRefNum: Integer; drvNum: Integer; qEl : DrvQElPtr);Obtaining File Control Block Information
FUNCTION PBGetFCBInfo (paramBlock: FCBPBPtr; async: Boolean): OSErr; FUNCTION PBGetFCBInfoSync (paramBlock: FCBPBPtr): OSErr; FUNCTION PBGetFCBInfoAsync (paramBlock: FCBPBPtr): OSErr;Application-Defined Routine
Completion Routines
PROCEDURE MyCompletionProc;