文章前提是建立在读者对FAT32文件系统了解的情况下。什么时候Windows开机会磁盘自检?Dirty BIT 标志,那么这个DirtyBit在哪呢?当前分区偏移0x41(只针对FAT32,NTFS就不是了),由于FAT32文件系统驱动是开源的,从FASTFAT工程里可以得到:
typedef struct _PACKED_BOOT_SECTOR_EX {
UCHAR Jump[3]; // offset = 0x000 0
UCHAR Oem[8]; // offset = 0x003 3
PACKED_BIOS_PARAMETER_BLOCK_EX PackedBpb; // offset = 0x00B 11
UCHAR PhysicalDriveNumber; // offset = 0x040 64
UCHAR CurrentHead; // offset = 0x041 65
UCHAR Signature; // offset = 0x042 66
UCHAR Id[4]; // offset = 0x043 67
UCHAR VolumeLabel[11]; // offset = 0x047 71
UCHAR SystemId[8];