//// 职能部门写绝对(s) \\\\
int writeabsolutesectors ( int drive,
unsigned long sectornumber,
int numofsectors,
void *buffer )
{
union REGS i, o ;
struct SREGS s ;
struct diskaddrpacket pp ;
pp.packetsize = 16 ; /*包大小=10h */
pp.reserved = 0 ; /* 保留=0*/
pp.blockcount = numofsectors ; /* 一些部门必须以书面形式*/
/*数据缓冲 */
pp.bufferaddress = (char far*) MK_FP ( FP_SEG((void
far*)buffer), FP_OFF((void far*)buffer));
pp.blocknumber[0] = sectornumber ;/* 一些部门必须以书面形式 */
pp.blocknumber[1] = 0 ; /* =0多座*/
i.h.ah = 0x43 ; /* 一些功能 */
i.h.al = 0x00 ; /* 写旗,见评论 */
i.h.dl = drive ; /* 体力活动多*/
/* DS:SI为缓冲参数 */
i.x.si = FP_OFF ( (void far*)&pp ) ;
/* DS:SI为缓冲参数 */
s.ds = FP_SEG ( (void far*)&pp ) ;
/* 引用第13次与具体职能部门登记代理价值观 */
int86x ( 0x13, &i, &o, &s ) ;
if ( o.x.cflag==1)
return 0 ; /* 失败*/
else
return 1 ; /* 成功 */
}
|