-
作者: 老道
发表于:8年前 (2016-12-23)
分类: 编程
阅读(1241)
评论()
/*
注意要1字节对齐
*/
typedef struct {
BYTE JMP[3];
BYTE OEM[8];
WORD BytesPerSector;
BYTE SectorsPerCluster;
WORD ReserveSectors;
BYTE FATNum;
WORD BootRecord;
WORD Sector;
BYTE MediaDescription;
WORD SectorsPerFATForSmallVolume;
WORD SectorsPerTrack;
WORD MagnetismHead;
DWORD HideSectors;
DWORD SectorOnBigColume;
DWORD SectorsPerFAT;
WORD Sign;
WORD Version;
DWORD FirstClusterOfBootDir;
WORD FSMegSector;
WORD BackUpBootSector;
BYTE Reserve[12];
BYTE BiosDevice;
BYTE UnUsed;
BYTE ExtendBootSign;
DWORD VolumeSerial;
BYTE VolumeSymbol;
BYTE FileSystem[5];
BYTE Blank[433];
WORD EndSignOfBPB;
} FAT_BPB,*PFAT_BPB ;
////////////////////////////////////////////////////////////
/*
32字节的目录项
*/
typedef struct {
BYTE FileName[8];
BYTE NameExtend[3];
BYTE Attribute;
BYTE Reserve;
BYTE CreateTimeMS;
WORD CreateTime;
WORD CreateDate;
WORD LastVisitTime;
WORD StartClusterH;
WORD RenewTime;
WORD RenewDate;
WORD StartClusterL;
DWORD FileLength;
} FAT_FDT, *PFAT_FDT;
////////////////////////////////////////////////////////////
typedef struct {
BYTE Order;
BYTE FirName[10];
BYTE Attribute;
BYTE Species;
BYTE CheckSum;
BYTE SecName[12];
WORD StartCluster;
BYTE ThiName[4];
} FAT_LONGNAME,*PFAT_LONGNAME;
////////////////////////////////////////////////////////////
typedef struct __CHS
{
BYTEStartHead;
WORDStartSecter:6;
WORDStartSylinder:10;
}_CHS,_pCHS;
typedef struct __PartitionTable
{
BYTE BootFlag; /*启动标志*/
_CHS StartCHS; /*分区开始的柱面、磁头、扇区*/
BYTE SystemID; /*分区类型*/
_CHS EndCHS; /*分区结束的柱面、磁头、扇区*/
DWORD RelativeSectors; /*分区相对扇区数,指分区相对于记录该分区的分区表的扇区位置之差*/
DWORD TotalSectors; /*分区总扇区数*/
}_PartitionTable,*_pPartitionTable;
////////////////////////////////////////////////////////////
#pragma pack(8)//为8字节对齐
typedef struct {
INT BytesPerSector;
INT SecPerC; //每蔟扇区数
INT DBRSize;
INT FATNum;
UINT FATSize;
INT FirCluOfBootDir;
UINT BytesPerCluster;
} FAT_VOLUME_INFO,*PFAT_VOLUME_INFO;
typedef struct {
DWORD StartLcn;
DWORD NumsOfLcn;
} FILEBITMAP,*PFILEBITMAP;
-
呃 本文暂时没人评论 来添加一个吧