📄 fatx.h
字号:
#ifndef FAT_H
#define FAT_H
#define CHAR unsigned char
#define BYTE unsigned char
#define WORD unsigned int
#define DWORD unsigned long
struct partrecord // 16 字节
{
BYTE prIsActive; // 0x80代表该分区为缺省分区
BYTE prStartHead; // 该分区入口的磁头地址
WORD prStartCylSect; // 该分区入口的扇区地址和柱面地址
BYTE prPartType; // 该分区类型
BYTE prEndHead; // 该分区结束的扇区地址
WORD prEndCylSect; // 该分区结束的柱面地址
DWORD prStartLBA; // 该分区内第一个扇区地址
DWORD prSize; // 该分区所包含的扇区总数
};
struct partsector
{
CHAR psPartCode[512-64-2]; // 启动代码 (446 bytes)
BYTE psPart[64]; // 四个分区表(64 bytes)
BYTE psBootSectSig0; // 两个签名(2 bytes)
BYTE psBootSectSig1;
#define BOOTSIG0 0x55
#define BOOTSIG1 0xaa
};
//系统引导扇区(DOS BOOT RECORD)DBR结构
struct bootsector710 {
BYTE bsJump[3]; // 跳转指令
CHAR bsOEMName[8]; // 厂商标志和OS版本号
CHAR bsBPB[53]; // BIOS 参数块
CHAR bsExt[26]; // 扩展BPB
CHAR bsBootCode[418]; // 引导扇区代码
BYTE bsBootSectSig2;
BYTE bsBootSectSig3;
BYTE bsBootSectSig0; // 引导扇区签名0x55
BYTE bsBootSectSig1; // 引导扇区签名0xAA
#define BOOTSIG0 0x55
#define BOOTSIG1 0xaa
#define BOOTSIG2 0
#define BOOTSIG3 0
};
// BIOS 参数块
struct bpb710 {
WORD bpbBytesPerSec; // 每扇区字节数
BYTE bpbSecPerClust; // 每簇扇区数
WORD bpbResSectors; // 保留区域中的保留扇区数
BYTE bpbFATs; // FAT表的份数
WORD bpbRootDirEnts; // 根目录项数
WORD bpbSectors; // 此域为存储卷上的扇区总数
BYTE bpbMedia; // 固定存储介质描述
WORD bpbFATsecs; // FAT表所占的扇区数
WORD bpbSecPerTrack; // 每道扇区数
WORD bpbHeads; // 磁头数
DWORD bpbHiddenSecs; // 隐藏扇区数
DWORD bpbHugeSectors; // 总扇区数
DWORD bpbBigFATsecs;// 每个FAT区所占扇区数
WORD bpbExtFlags; // 扩展标志
#define FATNUM 0xf
#define FATMIRROR 0x80
WORD bpbFSVers; // 文件系统版本
#define FSVERS 0
DWORD bpbRootClust; // 根目录簇号
WORD bpbFSInfo; // 文件系统信息扇区号
WORD bpbBackup; // 备份引导扇区
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -