|
|
|
|
|
是 1024*32 字节
|
|
|
BPB_RsvdSecCnt
|
0x0e
|
2
|
|
保留扇区的数目,此域不能为 0,FAT12/FAT16 必须为
|
|
|
|
|
|
|
1,FAT32 的典型值取为 32,,微软的系统支持任何非 0
|
|
|
|
|
|
|
值
|
|
|
|
|
|
|
|
|
|
BPB_BumFATs
|
0x10
|
1
|
|
分区中 FAT 表的份数,,任何 FAT 格式都建议为 2
|
|
|
BPB_RootEntCnt
|
0x11
|
2
|
|
对于 FAT12 和 FAT16 此域包含根目录中目录的个数(每
|
|
|
|
|
|
|
项长度为 32bytes),对于 FAT32,此项必须为 0。对
|
|
|
|
|
|
|
于 FAT12 和 FAT16 , 此 数 乘 以 32 必 为
|
|
|
|
|
|
|
BPB_BytesPerSec 的偶数倍,为了达到更好的兼容性,
|
|
|
|
|
|
|
FAT12 和 FAT16 都应该取值为 512
|
|
|
BPB_ToSec16
|
0x13
|
2
|
|
早期版本中 16bit 的总扇区,这里总扇区数包括 FAT 卷
|
|
|
|
|
|
|
上四个基本分区的全部扇区,此域可以为 0,若此域为 0,
|
|
|
|
|
|
|
那么 BPB_ToSec32 必须为 0,对于 FAT32,此域必为 0。
|
|
|
|
|
|
|
对于 FAT12/FAT16,此域填写总扇区数,如果该值小于
|
|
|
|
|
|
|
0x10000 的话,BPB_ToSec32 必须为 0
|
|
|
BPB_Media
|
0x15
|
1
|
|
对于“固定”(不可移动)存储介质而言,0xF8 是标准
|
|
|
|
|
|
|
值,对于可移动存储介质,经常使用的数值是 0xF0,此
|
|
|
|
|
|
|
域合法的取值可以取 0xF0,0xF8,0xF9,0xFA,0xFC,
|
|
|
|
|
|
|
0xFD,0xFE,0xFF。另外要提醒的是,无论此域写入
|
|
|
|
|
|
|
什么数值,同时也必须在 FAT[0]的低字节写入相同的
|
|
|
|
|
|
|
值,这是因为早期的 MSDOS 1.x 使用该字节来判定是何
|
|
|
|
|
|
|
种存储介质
|
|
|
|
|
|
|
|
|
|
BPB_FATSz16
|
0x16
|
2
|
|
FAT12/FAT16 一个 FAT 表所占的扇区数,对于 FAT32
|
|
|
|
|
|
|
来说此域必须为 0,在 BPB_FATZ32 中有指定 FAT 表的
|
|
|
|
|
|
|
大小
|
|
|
|
|
|
|
|
|
|
BPB_SecPerTrk
|
0x18
|
2
|
|
每磁道的扇区数,用于 BIOS 中断 0x13,此域只对于有
|
|
|
|
|
|
|
“特殊形状”(由磁头和柱面每分割为若干磁道)的存储
|
|
|
|
|
|
|
介质有效,同时必须可以调用 BIOS 的 0x13 中断得到此
|
|
|
|
|
|
|
数值
|
|
|
|
|
|
|
|
|
|
BPB_NumHeads
|
0x1A
|
2
|
|
磁头数,用于 BIOS 的 0x13 中断,类似于上面的 BPB_
|
|
|
|
|
|
|
SecPerTrk,只对特殊的介质才有效,此域包含一个至
|
|
|
|
|
|
|
少为 1 的数值,比如 1,4M 的软盘此域为 2
|
|
|
BPB_HidSec
|
0x1C
|
4
|
|
在此 FAT 分区之前所隐藏的扇区数,必须使得调用 BIOS
|
|
|
|
|
|
|
的 0x13 中断可以得到此数值,对于那些没有分区的存储
|
|
|
|
|
|
|
介质,此域必须为 0,具体使用什么值由操作系统决定
|
|
|
BPB_ToSec32
|
0x20
|
4
|
|
该卷总扇区数(32bit),这里的扇区总数包括 FAT 卷
|
|
|
|
|
|
|
四个个基本分的全部扇区,此域可以为 0,若此域为 0,
|
|
|
|
|
|
|
BPB_ToSec16 必须为非 0,对 FAT32,此域必须是非 0。
|
|
|
|
|
|
|
对于 FAT12/FAT16 如果总扇区数大于或等于 0x10000
|
|
|
|
|
|
|
的话,此域就是扇区总数,同时 BPB_ToSec16 的值为 0。
|
|