dos/windows系统分区表结构体
本人最近在写dos虚拟机,为了要和原来的dos的实现尽量保持一致,我找了资料,但是找不到分区表那个结构体(占16字节),希望高手告诉我一下
struct dp
{
//文件属性占32个字节,这里是实现http://baike.baidu.com/view/567639.htm
struct attr vol;
struct chs start;//分区的起始地址(chs)
//指向文件分配表的指针,因为可以是fat12,fat16,fat32,ntfs,所以我用void指针
void * tab;
TREE tree;//目录树
};
自己定义的指针(硬盘的)
struct chs
{
unsigned long
cyl: 10,//柱面
head: 8,//磁道
sec: 6,//扇区
stat: 1,//扇区状态(好或坏)
chc: 7;//校验值
};
上面是我的实现,但是占用很多空间,我想要原来dos/windows系统的
[解决办法]
typedef struct _PARTITION_TABLE_ENTRY{
unsigned char ActiveFlag;//00:not active,0x80:active
unsigned char StartCHS[3];
unsigned char FileSystem;//0:not used,0x5 0xf:extended,0x6:fat16,0xb 0x1b 0xc 0x1c:fat32,0x7:ntfs
unsigned char EndCHS[3];
unsigned int BaseSector;
unsigned int NumberOfSectors;
}PARTITION_TABLE_ENTRY,*PPARTITION_TABLE_ENTRY;