?? fat32mountvolumeid.c
字號(hào):
#ifndef _FAT32_DEFINE
#include "FAT32.c"
#endif
BYTE FAT32MountVolumeID(BYTE Partition);
BYTE FAT32MountVolumeID(BYTE Partition)
{
register BYTE i;
#ifdef DEBUG
printf("Mount FAT32 volume ID...%bd\n",Partition);
#endif
if (Partition>=HDD.TotalPartitions) return(FAT32_ERR_PARTITION_NOT_FOUND); //沒(méi)找到指定扇區(qū)
IDEReadSector(sDPT[Partition].LBABegin); //讀FAT32 VolumeID扇區(qū)
//檢查VolumeID扇區(qū)標(biāo)記
if (DiskBuffer[510] != 0x55||DiskBuffer[511] != 0xaa)
return(FAT32_ERR_MBR_FLAG); //不正常的引導(dǎo)扇區(qū)標(biāo)志
//檢查分區(qū)類(lèi)型
HDD.CurrentPartition = Partition; //當(dāng)前分區(qū)號(hào)
// HDD.BytesPerSec = BOOTSEC->BPB_BytesPerSec; //每扇區(qū)字節(jié)數(shù)
FAT32.SecPerClus = BOOTSEC->BPB_SecPerClus; //每簇扇區(qū)數(shù)
FAT32.RsvdSecCnt = MEMSwap16(BOOTSEC->BPB_RsvdSecCnt); //保留扇區(qū)數(shù)
FAT32.NumFATs = BOOTSEC->BPB_NumFATs; //FAT表個(gè)數(shù)
FAT32.FATSz = MEMSwap32(BOOTSEC->FAT.F32.BPB_FATSz32); //FAT表達(dá)小(扇區(qū))
FAT32.RootClus = MEMSwap32(BOOTSEC->FAT.F32.BPB_RootClus); //根目錄簇號(hào)
FAT32.CurrentDirectory = FAT32.RootClus; //當(dāng)前目錄入口(簇號(hào))
FAT32.FATSec = sDPT[HDD.CurrentPartition].LBABegin + FAT32.RsvdSecCnt; //FAT表開(kāi)始的扇區(qū)號(hào)
FAT32.ClusSec = sDPT[HDD.CurrentPartition].LBABegin + FAT32.RsvdSecCnt + (FAT32.NumFATs * FAT32.FATSz); //簇開(kāi)始的扇區(qū)
FAT32.FSISec = MEMSwap16(BOOTSEC->FAT.F32.BPB_FSInfo) + sDPT[Partition].LBABegin; //FAT32擴(kuò)展信息扇區(qū)號(hào)
//加載第一個(gè)FAT表
IDEReadSector(FAT32.FATSec);
for(i=0;i<128;i++)
FAT.FAT[i]=((DWORD *)&DiskBuffer)[i];
FAT.Sector=0;
return(0);
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -