Legacy Documentclose button

Important: The information in this document is obsolete and should not be used for new development.

Previous Book Contents Book Index Next

Inside Macintosh: Files /
Chapter 2 - File Manager


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;


Previous Book Contents Book Index Next

© Apple Computer, Inc.
2 JUL 1996