⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 disk.h

📁 吐血了
💻 H
字号:
struct DIOC_REGISTERS 
{
	DWORD ebx ;
	DWORD edx ;
	DWORD ecx ;
	DWORD eax ;
	DWORD edi ;
	DWORD esi ;
	DWORD flags ;
} ;

#pragma pack ( 1 )

struct media
{
	WORD infolevel ;
	DWORD serialnumber ;
	char vollabel[11] ;
	char filesystype[8] ;
} ;

struct DISKIO 
{
    DWORD startsector ;    
    WORD  sectorsnum ;     
    DWORD buff ;         
} ;

struct boot
{
	BYTE jump[3] ;
	char OEMname[8] ;
	WORD bps ;
	BYTE spc ;
	WORD reservedsec ;
	BYTE fatcopies ;
	WORD maxdirentries ;
	WORD totalsec ;
	BYTE mediadesc ;
	WORD secperfat ;
	WORD secpertrack ;
	WORD noofsides ;
	DWORD hidden ;
	DWORD hugesec ;
    BYTE drivenumber ;
    BYTE reserved ;
    BYTE bootsignature ;
    DWORD volumeid ;
    char volumelabel[11] ;
    char filesystype[8] ;
	BYTE unused[450] ;
} ;

struct boot32 
{
    BYTE jump[3] ;
	char bsOemName[8] ;
    WORD BytesPerSector ;
    BYTE SectorsPerCluster ;
    WORD ReservedSectors ;
    BYTE NumberOfFATs ;
    WORD RootEntries ;
    WORD TotalSectors ;
    BYTE MediaDescriptor ;
    WORD SectorsPerFAT ;
    WORD SectorsPerTrack ;
    WORD Heads ;
    WORD HiddenSectors ;
    WORD HiddenSectorsHigh ;
    WORD BigTotalSectors ;
    WORD BigTotalSectorsHigh ;
    WORD BigSectorsPerFat ;
    WORD BigSectorsPerFatHi ;
    WORD ExtFlags ;
    WORD FS_Version ;
    WORD RootDirStrtClus ;
    WORD RootDirStrtClusHi ;
    WORD FSInfoSec ;
    WORD BkUpBootSec ;
    WORD Reserved[6] ;
    BYTE bsDriveNumber ;		  
    BYTE bsReserved ;
    BYTE bsBootSignature ;
    DWORD bsVolumeID ;	
    char bsVolumeLabel[11] ;
    char bsFileSysType[8] ;
	BYTE unused [422] ;
} ;

struct 	bigfatbootfsinfo
{
	DWORD	FSInf_Sig ;
	DWORD	FSInf_free_clus_cnt ;
	DWORD	FSInf_next_free_clus ;
	DWORD	FSInf_resvd[3] ;
} ;

struct directory
{
	char filename[8] ;
	char extension[3] ;
	BYTE att ;
	BYTE reserved ;
	BYTE second ;
	WORD createtime ;
	WORD createdate ;
	WORD lastdate ;
	WORD fat32handle ;
	WORD modifytime ;
	WORD modifydate ;
	WORD startclus ;
	DWORD size ;
} ;

struct longdirectory 
{
    char    leSequence ;			// sequence byte:1,2,3,..., last entry is or'ed with 40h
    wchar_t leName[5] ;			// Unicode characters of name
    BYTE    leAttributes ;		// Attributes: 0fh
    BYTE    leType ;				  // Long Entry Type: 0
    BYTE    leChksum ;			  // Checksum for matching short name alias
    wchar_t leName2[6] ;			// More Unicode characters of name
    WORD    leZero ;				  // reserved
    wchar_t leName3[2] ;			// More Unicode characters of name
} ;

#pragma pack( )

class disk 
{
	private :

		HANDLE hdev ;
		CString bootstr ;

	public :

		disk( ) ;
		void getmediaid ( int drive_1, media *m ) ;
		void readabsolutesectors (  int drive_0, int startsect, int numsect, void * buffer ) ;
		void readabsolutesectors32 ( int drive_1, int startsect, int numsect, void *buffer ) ;
		CString getfat_12 ( BYTE* pfat, int k ) ;
} ;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -