DBR的实现代码:
struct FAT32_DBR
{
unsigned char BS_jmpBoot[3]; //跳转指令offset: 0
unsigned char BS_OEMName[8]; // offset: 3
unsigned char BPB_BytesPerSec[2];//每扇区字节数offset:11
unsigned char BPB_SecPerClus[1]; //每簇扇区数offset:13
unsigned char BPB_RsvdSecCnt[2]; //保留扇区数目offset:14
unsigned char BPB_NumFATs[1]; //此卷中FAT表数offset:16
unsigned char BPB_RootEntCnt[2]; //FAT32 为0 offset:17
unsigned char BPB_TotSec16[2]; //FAT32为0 offset:19
unsigned char BPB_Media[1]; //存储介质offset:21
unsigned char BPB_FATSz16[2]; //FAT32为0 offset:22
unsigned char BPB_SecPerTrk[2]; //磁道扇区数offset:24
unsigned char BPB_NumHeads[2]; //磁头数offset:26
unsigned char BPB_HiddSec[4]; //FAT区前隐扇区数offset:28
unsigned char BPB_TotSec32[4]; //该卷总扇区数offset:32
unsigned char BPB_FATSz32[4]; //一个FAT表扇区数offset:36
unsigned char BPB_ExtFlags[2]; //FAT32特有offset:40
unsigned char BPB_FSVer[2]; //FAT32特有offset:42
unsigned char BPB_RootClus[4]; //根目录簇号offset:44
unsigned char FSInfo[2]; //保留扇区FSINFO扇区数offset:48
unsigned char BPB_BkBootSec[2]; //通常为6 offset:50
unsigned char BPB_Reserved[12]; //扩展用offset:52
unsigned char BS_DrvNum[1]; // offset:64
unsigned char BS_Reserved1[1]; // offset:65
unsigned char BS_BootSig[1]; // offset:66
unsigned char BS_VolID[4]; // offset:67
unsigned char BS_FilSysType[11]; // offset:71
unsigned char BS_FilSysType1[8]; //"FAT32 " offset:82
};
|