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 磁盘没有准备好 */