我通过CreateFile读取了MBR信息,并保存在这样的一个结构中!
#pragma pack(1)//字节对齐
typedef struct _PARTITION_ENTRY//分区表结构
{
UCHAR active; //状态(是否被激活)
UCHAR StartHead; //分区起始磁头号
UCHAR StartSector; //分区起始扇区和柱面号,高2位为柱面号的第 9,10 位, 高字节为柱面号的低 8 位
UCHAR StartCylinder; // 起始磁盘柱面
UCHAR PartitionType; // 分区类型
UCHAR EndHead; //分区结束磁头号
UCHAR EndSector; //分区结束扇区
UCHAR EndCylinder; // 结束柱面号
ULONG StartLBA; // 扇区起始逻辑地址
ULONG TotalSector; // 分区大小
} PARTITION_ENTRY, *PPARTITION_ENTRY;//引导区512BYTE结构
typedef struct _MBR_SECTOR
{
UCHAR BootCode[446];//启动记录446 Byte
PARTITION_ENTRY Partition[4];//分区表结构64 Byte
USHORT Signature;//结束标志2 Byte
} MBR_SECTOR, *PMBR_SECTOR;#pragma pack()
读取出来出现了这样的问题!?
我机器上有四个分区,但是,读取出来的第一个分区的数据还算正常,但是从第二个分区开始就不正常了
第二个分区的大小( ULONG TotalSector; // 分区大小 )有60多G,和实际不符合!
第三个,第四个显示的都是0,
郁闷,是怎么回事啊????
难道这个数据结构有问题??
#pragma pack(1)//字节对齐
typedef struct _PARTITION_ENTRY//分区表结构
{
UCHAR active; //状态(是否被激活)
UCHAR StartHead; //分区起始磁头号
UCHAR StartSector; //分区起始扇区和柱面号,高2位为柱面号的第 9,10 位, 高字节为柱面号的低 8 位
UCHAR StartCylinder; // 起始磁盘柱面
UCHAR PartitionType; // 分区类型
UCHAR EndHead; //分区结束磁头号
UCHAR EndSector; //分区结束扇区
UCHAR EndCylinder; // 结束柱面号
ULONG StartLBA; // 扇区起始逻辑地址
ULONG TotalSector; // 分区大小
} PARTITION_ENTRY, *PPARTITION_ENTRY;//引导区512BYTE结构
typedef struct _MBR_SECTOR
{
UCHAR BootCode[446];//启动记录446 Byte
PARTITION_ENTRY Partition[4];//分区表结构64 Byte
USHORT Signature;//结束标志2 Byte
} MBR_SECTOR, *PMBR_SECTOR;#pragma pack()
读取出来出现了这样的问题!?
我机器上有四个分区,但是,读取出来的第一个分区的数据还算正常,但是从第二个分区开始就不正常了
第二个分区的大小( ULONG TotalSector; // 分区大小 )有60多G,和实际不符合!
第三个,第四个显示的都是0,
郁闷,是怎么回事啊????
难道这个数据结构有问题??
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货