www.pudn.com > DiskIOForC_class.rar > DiskOpt.h


#include  
#pragma pack(1) 
class CDiskOpt   
{ 
public: 
 
public: 
	CDiskOpt(); 
	virtual ~CDiskOpt(); 
public: 
	int WinBiosDisk(unsigned char command, 
				unsigned char drive, 
				unsigned char head, 
				unsigned char track, 
				unsigned char sector, 
				unsigned char nsectors, 
				void *buffer); 
	int WinReadDisk(unsigned char drive, 
				unsigned char sector, 
				unsigned char nsectors, 
				void *buffer); 
	 
	 
	/*制作密纹函数*/ 
	int MakeSector(unsigned char drive, 
			   unsigned char head, 
			   unsigned char track, 
			   unsigned char sector, 
			   unsigned char *buffer); 
	/*读取密纹函数*/ 
	int ReadSector(unsigned char drive, 
			   unsigned char head, 
			   unsigned char track, 
			   unsigned char sector, 
			   unsigned char *buffer); 
	/*写入密纹*/ 
	int WriteSector(unsigned char drive, 
				unsigned char head, 
				unsigned char track, 
				unsigned char sector, 
				unsigned char *buffer); 
	void ErrMsg(int iCode,LPSTR errMessage); 
 
 
 
protected: 
 
}; 
	/* 
	函数WinBiosDisk还有以下两个缺点以待改进: 
	  1.本函数还只能读能读 A: 和 B:,即只能对软盘操作 
      2.不能改变磁盘扇区大小,只能是标准的 512 个字节。 
 
    参数说明: 
	   command        操作:  
	                      0    重置磁盘 
	                      2    读扇区 
						  3    写扇区 
						  4    校验磁道 
						  5    格式化磁道 
						  8    得到设备参数 (int 1EH) 
       drive          驱动器 A:=0 B:=1 
       head           磁头号,范围 0 - 1 
	   track          磁道号,范围 0 - 84    ( 80 - 84  为特殊磁道,通常用来加密 ) 
	   sector         扇区号,范围 0 - 255   ( 19 - 255 为非标准扇区编号,通常用来加密)  
	   nsectors       每次读或写的扇区数,不能超出每磁道的最大扇区数  
       buffer         数据写入或读出的缓冲区,大小为 512 个字节 
 
    返回值 ( 同 Int 13H ): 
	    
	   0x0     成功 
	   0x1     无效的命令 
	   0x3     磁盘被写保护 
	   0x4     扇区没有找到 
	   0xa     发现坏扇区 
       0x80    磁盘没有准备好 
 
	*/