我用的驱动是DUSE,用以下程序段检测硬盘可以,但不能检测移动硬盘,请大家指点
/***********************************************************/
void IoSector(BYTE act,BYTE driver,BYTE *buffer)
{
REGS regs;
SREGS sregs;
regs.h.ah=act;
regs.h.al=1;
regs.h.ch=0;
regs.h.cl=1;
regs.h.dh=0;
regs.h.dl=driver;
regs.x.bx=FP_OFF(buffer);
sregs.es=FP_SEG(buffer);
int86x(0x13,®s,®s,&sregs);
}
/**************************************************************/
int CheckSector(BYTE driver)
{
REGS regs;
SREGS sregs;
int i;
unsigned char temp;
for(i=0;i<3;i++)
IoSector (0x02,driver,temp);
for (i=0;i<3;i++)
{
regs.h.ah=3;
regs.h.al=1;
regs.x.bx=FP_OFF(temp);
sregs.es=FP_SEG(temp);
regs.h.ch=0;
regs.h.cl=1;
regs.h.dh=0;
regs.h.dl=driver;
int86x(0x13,®s,®s,&sregs);
}
if (regs.x.cflag)
return regs.h.ah;
return 0;
}