/* 디스크 주소 소포 체재의 구조는, writeabsolutesectors에 의해 사용되기 위하여 작용한다*/
struct diskaddrpacket
{
char packetsize ; /* 소포, 일반적으로 10H의 크기 */
char reserved ; /* 보류하는 (0개) */
int blockcount ; /* 옮길 것이다 구획의 수 */
char far *bufferaddress ; /* 완충기를 옮기는 주소 */
unsigned long blocknumber[2] ; /* 절대 블럭 수 시작 */
} ;
///// 드라이브 매개변수를 얻는 기능 \\\\\
unsigned long getdrivegeometry (int drive)
{
union REGS i, o ;
struct SREGS s ;
struct geometry g = { 26, 0, 0, 0, 0, 0, 0, 0 } ;
i.h.ah = 0x48 ; /* INT 13H 연장의 기능 수 0x48 */
i.h.dl = drive; /* 드라이브 수 */
i.x.si = FP_OFF ( (void far*)&g ) ;
s.ds = FP_SEG ( (void far*)&g ) ;
/* 세그먼트 기록기 가치를 가진 INT 13H 연장의 지정된 기능 수를 비십시오*/
int86x ( 0x13, &i, &o, &s ) ;
printf("\n 머리 = %lu, 대위 당 분야 = %lu, 실린더 =
%lu\n",
g.heads,g.spt,g.cyl);
|