CH375中是怎么識(shí)別引導(dǎo)區(qū)的?[求助]

有一段這樣的程序: UINT8 mIdenDisk( void ) { /* 識(shí)別分析當(dāng)前邏輯盤 */ UINT8 Status; DiskStart = 0; /* 以下是非常簡單的FAT文件系統(tǒng)的分析,正式應(yīng)用絕對(duì)不應(yīng)該如此簡單 */ Status = mReadSector( 0, 1, DISK_BUFFER ); /* 讀取邏輯盤引導(dǎo)信息 */ if ( Status != 0 ) return( Status ); if ( DISK_BUFFER[0] != 0xEB && DISK_BUFFER[0] != 0xE9 ) {/* 不是邏輯引導(dǎo)扇區(qū) */ DiskStart = DISK_BUFFER[0x1C6] | (UINT16)DISK_BUFFER[0x1C7] << 8 | (UINT32)DISK_BUFFER[0x1C8] << 16 | (UINT32)DISK_BUFFER[0x1C9] << 24; Status = mReadSector( DiskStart, 1, DISK_BUFFER ); if ( Status != 0 ) return( Status ); } SecPerClus = DISK_BUFFER[0x0D]; /* 每簇扇區(qū)數(shù) */ RsvdSecCnt = DISK_BUFFER[0x0E]; /* 邏輯盤的保留扇區(qū)數(shù) */ FATSz16 = mGetPointWord( &DISK_BUFFER[0x16] ); /* FAT表占用扇區(qū)數(shù) */ return( 0 ); } /* 成功 */ 其中 if ( DISK_BUFFER[0] != 0xEB && DISK_BUFFER[0] != 0xE9 ) {/* 不是邏輯引導(dǎo)扇區(qū) */ DiskStart = DISK_BUFFER[0x1C6] | (UINT16)DISK_BUFFER[0x1C7] << 8 | (UINT32)DISK_BUFFER[0x1C8] << 16 | (UINT32)DISK_BUFFER[0x1C9] << 24; Status = mReadSector( DiskStart, 1, DISK_BUFFER ); if ( Status != 0 ) return( Status ); } 我不懂,他是怎么識(shí)別引導(dǎo)區(qū)的,能詳細(xì)說明下么??

這個(gè)需要你去找資料看看。微軟有一份文檔 FAT文件系統(tǒng)白皮書 去找這個(gè)資料里面有詳細(xì)的說明,協(xié)議性的東西沒法解釋為什么。


糾正一個(gè)問題,引導(dǎo)區(qū)的識(shí)別不是由CH375識(shí)別的,CH375只負(fù)責(zé)讀取物理扇區(qū)的數(shù)據(jù),然后由程序來分析,至于如何分析,則要參考1樓所提的文檔


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频