Pointers

      SFT field sf_FSC points to the associated FSC_ENTRY.

      VPB field vpb_FSC points to the associated FSC_ENTRY.

      CDS field cd_ownerFSC points to the associated FSC_ENTRY.

      SAS field SAS_dd_FSC contains the selector for FSCSEG.

      GDT_FSC locates the GDT descriptor for the FSCSEG.

    Locations
      Dynamically allocated from the kernel resident heap.
    VM Owner
      fsc (0xff95).

    Format

    FSCSEG

    ┌─────────────────┬──────┬──────┬────┬───────────────────────────────────┐│Field Name       │Offset│Length│Type│Description                        │
    ├─────────────────┼──────┼──────┼────┼───────────────────────────────────┤
    │fss_Limit        │0     │2     │W   │Offset PAST last allocated byte    │
    ├─────────────────┼──────┼──────┼────┼───────────────────────────────────┤
    │fss_ShutdownFlags│2     │2     │W   │flags for shutdown                 │
    ├─────────────────┼──────┼──────┼────┼───────────────────────────────────┤
    │fss_SDWaitCount  │4     │2     │W   │number of processes pending before │
    ├─────────────────┼──────┼──────┼────┼───────────────────────────────────┤
    │fss_pad          │6     │2     │W   │shutdown can commence (DWORD align)│
    └─────────────────┴──────┴──────┴────┴───────────────────────────────────┘
    

    FS_ENTRY

    ┌────────────────────┬──────┬──────┬────┬──────────────────────────────────┐
    │Field Name          │Offset│Length│Type│Description                       │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_ATTRIBUTE        │0     │4     │D   │-> FSD attribute. (in FSD memory) │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_NAME             │4     │4     │D   │-> FSD name.      (in FSD memory) │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_ATTACH           │8     │4     │D   │DosQFsAttach, DosFsAttach         │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_CHDIR            │C     │4     │D   │DosChdir                          │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_CHGFILEPTR       │10    │4     │D   │DosChgFilePtr                     │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_CLOSE            │14    │4     │D   │DosClose                          │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_COPY             │18    │4     │D   │DosCopy                           │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_DELETE           │1C    │4     │D   │DosDelete                         │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_EXIT             │20    │4     │D   │DosExit                           │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_FILEATTRIBUTE    │24    │4     │D   │DosFileInfo, DosSetFileMode       │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_FILEINFO         │28    │4     │D   │DosQFileInfo, DosSetFileInfo      │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_FILEIO           │2C    │4     │D   │DosFileIO                         │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_FINDCLOSE        │30    │4     │D   │DosFindClose                      │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_FINDFIRST        │34    │4     │D   │DosFindFirst                      │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_FINDFROMNAME     │38    │4     │D   │DosFindFromName-Private to server │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_FINDNEXT         │3C    │4     │D   │DosFindNext                       │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_FINDNOTIFYCLOSE  │40    │4     │D   │DosFindNotifyClose                │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_FINDNOTIFYFIRST  │44    │4     │D   │DosFindNotifyFirst                │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_FINDNOTIFYNEXT   │48    │4     │D   │DosFindNotifyNext                 │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_FSINFO           │4C    │4     │D   │DosQFsInfo, DosSetFsInfo          │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_INIT             │50    │4     │D   │-- No corresponding API           │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_IOCTL            │54    │4     │D   │DosDevIoctl                       │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_MKDIR            │58    │4     │D   │DosMkdir                          │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_MOUNT            │5C    │4     │D   │-- No corresponding API           │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_MOVE             │60    │4     │D   │DosMove                           │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_NEWSIZE          │64    │4     │D   │DosNewsize                        │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_NMPIPE           │68    │4     │D   │All named pipe related API's      │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_OPENCREATE       │6C    │4     │D   │DosOpen                           │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_PATHINFO         │70    │4     │D   │DosQPathInfo, DosSetPathInfo      │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_PROCESSNAME      │74    │4     │D   │-- No corresponding API           │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_READ             │78    │4     │D   │DosRead, DosReadAsync             │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_RMDIR            │7C    │4     │D   │DosRmdir                          │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_SETSWAP          │80    │4     │D   │-- No correcponding API           │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_WRITE            │84    │4     │D   │DosWrite, DosWriteAsync           │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_OPENPAGEFILE     │88    │4     │D   │init time only                    │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_ALLOCATEPAGESPACE│8C    │4     │D   │size swap file                    │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_CANCELLOCKREQUEST│90    │4     │D   │DosCancelLockRequest              │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_FILELOCKS        │94    │4     │D   │DosSetFileLocks                   │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_VERIFYUNCNAME    │98    │4     │D   │Used to save function addresses   │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_COMMIT           │9C    │4     │D   │DosBufReset, DosClose             │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_DOPAGEIO         │A0    │4     │D   │perform paging                    │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_FSCTL            │A4    │4     │D   │DosFsCtl                          │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_FLUSHBUF         │A8    │4     │D   │DosBufReset                       │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_SHUTDOWN         │AC    │4     │D   │DosShutdown                       │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_SDCHGFILEPTR     │B0    │4     │D   │Used to save function addresses   │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_SDFSINFO         │B4    │4     │D   │at shutdown time.  These functions│
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_SDREAD           │B8    │4     │D   │will only be called by shutdown   │
    ├────────────────────┼──────┼──────┼────┼──────────────────────────────────┤
    │FS_SDWRITE          │BC    │4     │D   │filters.                          │
    └────────────────────┴──────┴──────┴────┴──────────────────────────────────┘
    

    FS_ATTRIBUTE flag definitions

    ┌────────────────┬────────┬─────────────────────────────────┐
    │Name            │Bit Mask│Description                      │
    ├────────────────┼────────┼─────────────────────────────────┤
    │FS_ATTR_REMOTE  │0x0001  │0 = local FSD, 1 = remote FSD    │
    ├────────────────┼────────┼─────────────────────────────────┤
    │FS_ATTR_UNC     │0x0002  │0 = normal, 1 = this is UNC FSD  │
    ├────────────────┼────────┼─────────────────────────────────┤
    │FS_ATTR_LOCKINFO│0x0004  │0 = no notice, 1=notify filelocks│
    ├────────────────┼────────┼─────────────────────────────────┤
    │FS_ATTR_LVL7    │0x0008  │0 = no level 7 requests, 1 = yes │
    ├────────────────┼────────┼─────────────────────────────────┤
    │FS_ATTR_PIPESVR │0x0010  │0 = don't FSD on PIPE req,1 = yes│
    ├────────────────┼────────┼─────────────────────────────────┤
    │FS_ATTR_VERNO   │0x7000  │bits 28-30 version no            │
    ├────────────────┼────────┼─────────────────────────────────┤
    │FS_ATTR_EA      │0x8000  │bit 31 -> 1 = extended attribute │
    └────────────────┴────────┴─────────────────────────────────┘
    

    FS_COMMIT flag definitions

    ┌─────────────┬────────┬──────────────────┐
    │Name         │Bit Mask│Description       │
    ├─────────────┼────────┼──────────────────┤
    │FS_COMMIT_ALL│2       │all handles commit│
    ├─────────────┼────────┼──────────────────┤
    │FS_COMMIT_ONE│1       │one handle commit │
    └─────────────┴────────┴──────────────────┘
    

    Euqates for close type

    ┌──────────────┬────────┬───────────────────────┐
    │Name          │Bit Mask│Description            │
    ├──────────────┼────────┼───────────────────────┤
    │FS_CL_ORDINARY│0       │ordinary close         │
    ├──────────────┼────────┼───────────────────────┤
    │FS_CL_FORPROC │1       │final close for process│
    ├──────────────┼────────┼───────────────────────┤
    │FS_CL_FORSYS  │2       │final close for system │
    └──────────────┴────────┴───────────────────────┘
    

    fscnameentstruc

    ┌──────────────────┬──────┬──────┬────┬────────────┐
    │Field Name        │Offset│Length│Type│Description │
    ├──────────────────┼──────┼──────┼────┼────────────┤
    │FSCNmEnt_Emulation│0     │4     │D   │            │
    ├──────────────────┼──────┼──────┼────┼────────────┤
    │FSCNmEnt_Group    │4     │1     │B   │            │
    ├──────────────────┼──────┼──────┼────┼────────────┤
    │FSCNmEnt_NameLen  │5     │1     │B   │            │
    ├──────────────────┼──────┼──────┼────┼────────────┤
    │FSCNmEnt_ProcName │6     │1     │B   │            │
    └──────────────────┴──────┴──────┴────┴────────────┘
    

    mFS_ENTRY

    ┌──────────────┬──────┬──────┬────┬───────────────────────┐
    │Field Name    │Offset│Length│Type│Description            │
    ├──────────────┼──────┼──────┼────┼───────────────────────┤
    │MFS_CHGFILEPTR│0     │4     │D   │DosChgFilePtr          │
    ├──────────────┼──────┼──────┼────┼───────────────────────┤
    │MFS_CLOSE     │4     │4     │D   │DosClose               │
    ├──────────────┼──────┼──────┼────┼───────────────────────┤
    │MFS_INIT      │8     │4     │D   │-- No corresponding API│
    ├──────────────┼──────┼──────┼────┼───────────────────────┤
    │MFS_OPEN      │C     │4     │D   │DosOpen                │
    ├──────────────┼──────┼──────┼────┼───────────────────────┤
    │MFS_READ      │10    │4     │D   │DosRead, DosReadAsync  │
    ├──────────────┼──────┼──────┼────┼───────────────────────┤
    │MFS_TERM      │14    │4     │D   │DosRead, DosReadAsync  │
    └──────────────┴──────┴──────┴────┴───────────────────────┘
    

    uncfscentrstruc

    ┌─────────────┬──────┬──────┬────┬─────────────────────────────────────┐
    │Field Name   │Offset│Length│Type│Description                          │
    ├─────────────┼──────┼──────┼────┼─────────────────────────────────────┤
    │UNCfsc_VpbID │0     │4     │D   │Unique ID UNC VPB                    │
    ├─────────────┼──────┼──────┼────┼─────────────────────────────────────┤
    │UNCfsc_FSCptr│4     │4     │D   │Hold Seg:ofs to UNC FSD's FSC        │
    ├─────────────┼──────┼──────┼────┼─────────────────────────────────────┤
    │UNCfsc_hVPB  │8     │2     │W   │Handle to VPB in VPB Seg(offset)     │
    ├─────────────┼──────┼──────┼────┼─────────────────────────────────────┤
    │UNCfsc_Active│A     │2     │W   │Does this entry contain UNC FSD Info?│
    └─────────────┴──────┴──────┴────┴─────────────────────────────────────┘
    

    uncliststruc

    ┌─────────────┬──────┬──────┬────┬─────────────────────────────────────┐
    │Field Name   │Offset│Length│Type│Description                          │
    ├─────────────┼──────┼──────┼────┼─────────────────────────────────────┤
    │UNCfsc_1     │0     │C     │B   │                                     │
    ├─────────────┼──────┼──────┼────┼─────────────────────────────────────┤
    ├─────────────┼──────┼──────┼────┼─────────────────────────────────────┤
    │UNCfsc_VpbID │0     │4     │D   │Unique ID UNC VPB                    │
    ├─────────────┼──────┼──────┼────┼─────────────────────────────────────┤
    │UNCfsc_FSCptr│4     │4     │D   │Hold Seg:ofs to UNC FSD's FSC        │
    ├─────────────┼──────┼──────┼────┼─────────────────────────────────────┤
    │UNCfsc_hVPB  │8     │2     │W   │Handle to VPB in VPB Seg(offset)     │
    ├─────────────┼──────┼──────┼────┼─────────────────────────────────────┤
    │UNCfsc_Active│A     │2     │W   │Does this entry contain UNC FSD Info?│
    ├─────────────┼──────┼──────┼────┼─────────────────────────────────────┤
    │UNCfsc_2     │C     │C     │B   │                                     │
    ├─────────────┼──────┼──────┼────┼─────────────────────────────────────┤
    ├─────────────┼──────┼──────┼────┼─────────────────────────────────────┤
    │UNCfsc_VpbID │C     │4     │D   │Unique ID UNC VPB                    │
    ├─────────────┼──────┼──────┼────┼─────────────────────────────────────┤
    │UNCfsc_FSCptr│10    │4     │D   │Hold Seg:ofs to UNC FSD's FSC        │
    ├─────────────┼──────┼──────┼────┼─────────────────────────────────────┤
    │UNCfsc_hVPB  │14    │2     │W   │Handle to VPB in VPB Seg(offset)     │
    ├─────────────┼──────┼──────┼────┼─────────────────────────────────────┤
    │UNCfsc_Active│16    │2     │W   │Does this entry contain UNC FSD Info?│
    ├─────────────┼──────┼──────┼────┼─────────────────────────────────────┤
    │UNCfsc_3     │18    │C     │B   │                                     │
    ├─────────────┼──────┼──────┼────┼─────────────────────────────────────┤
    ├─────────────┼──────┼──────┼────┼─────────────────────────────────────┤
    │UNCfsc_VpbID │18    │4     │D   │Unique ID UNC VPB                    │
    ├─────────────┼──────┼──────┼────┼─────────────────────────────────────┤
    │UNCfsc_FSCptr│1C    │4     │D   │Hold Seg:ofs to UNC FSD's FSC        │
    ├─────────────┼──────┼──────┼────┼─────────────────────────────────────┤
    │UNCfsc_hVPB  │20    │2     │W   │Handle to VPB in VPB Seg(offset)     │
    ├─────────────┼──────┼──────┼────┼─────────────────────────────────────┤
    │UNCfsc_Active│22    │2     │W   │Does this entry contain UNC FSD Info?│
    ├─────────────┼──────┼──────┼────┼─────────────────────────────────────┤
    │UNCfsc_4     │24    │C     │B   │                                     │
    ├─────────────┼──────┼──────┼────┼─────────────────────────────────────┤
    ├─────────────┼──────┼──────┼────┼─────────────────────────────────────┤
    │UNCfsc_VpbID │24    │4     │D   │Unique ID UNC VPB                    │
    ├─────────────┼──────┼──────┼────┼─────────────────────────────────────┤
    │UNCfsc_FSCptr│28    │4     │D   │Hold Seg:ofs to UNC FSD's FSC        │
    ├─────────────┼──────┼──────┼────┼─────────────────────────────────────┤
    │UNCfsc_hVPB  │2C    │2     │W   │Handle to VPB in VPB Seg(offset)     │
    ├─────────────┼──────┼──────┼────┼─────────────────────────────────────┤
    │UNCfsc_Active│2E    │2     │W   │Does this entry contain UNC FSD Info?│
    └─────────────┴──────┴──────┴────┴─────────────────────────────────────┘
    


    [Back] [Next]