BREAK ; ; Microsoft Confidential ; Copyright (C) Microsoft Corporation 1991 ; All Rights Reserved. ; ;** DPB - Drive Parameter Block ; ; BUGBUG - this isn't authorative - it's my probably incomplete and ; possibly inaccurate deductions from code study... - jgl ; ; The DPB is DOS's main structure for describing block devices. ; It contains info about the "Drive" intermingled with info about ; the FAT file system which is presumably on the drive. I don't know ; how those fields are used if it's not the FAT file system - BUGBUG ; ; The DPBs are statically allocated and chained off of DPBHead. ; Users scan this chain looking for a match on DPB_DRIVE. ; The DPBs are built at init time from info in the SYSDEV structure. DPB STRUC DPB_DRIVE DB ? ; Logical drive # assoc with DPB (A=0,B=1,...) DPB_UNIT DB ? ; Driver unit number of DPB DPB_SECTOR_SIZE DW ? ; Size of physical sector in bytes DPB_CLUSTER_MASK DB ? ; Sectors/cluster - 1 DPB_CLUSTER_SHIFT DB ? ; Log2 of sectors/cluster DPB_FIRST_FAT DW ? ; Starting record of FATs DPB_FAT_COUNT DB ? ; Number of FATs for this drive DPB_ROOT_ENTRIES DW ? ; Number of directory entries DPB_FIRST_SECTOR DW ? ; First sector of first cluster DPB_MAX_CLUSTER DW ? ; Number of clusters on drive + 1 DPB_FAT_SIZE DW ? ; Number of records occupied by FAT DPB_DIR_SECTOR DW ? ; Starting record of directory DPB_DRIVER_ADDR DD ? ; Pointer to driver DPB_MEDIA DB ? ; Media byte DPB_FIRST_ACCESS DB ? ; This is initialized to -1 to force a media ; check the first time this DPB is used DPB_NEXT_DPB DD ? ; Pointer to next Drive parameter block DPB_NEXT_FREE DW ? ; Cluster # of last allocated cluster DPB_FREE_CNT DW ? ; Count of free clusters, -1 if unknown DPB ENDS DPBSIZ EQU SIZE DPB ; Size of the structure in bytes DSKSIZ = DPB_max_CLUSTER ; Size of disk (temp used during init only)