코딩에 대하여 코멘트:
기능은 ()이다 이 회복 프로그램에서 사용자 지정 파일의 회복, 실행의 실제적인 단위 통합한다.
재기된 파일을 특성 포인터 *Filename_with_path에서 저장하는 목적지 경로에 파일 이름은 저장된다. 만약에 목적지 파일을 열기에 있는 아무 과실나 있으면, 착오 알림말은 디스플레이되고 사용자는 다시 신속하다 목적지에 들어가기 위하여.
기능 _bios_disk (_DISK_READ, &dinfo); 분야에 의하여 구조 dinfo에 의해 지정되고 자료 버퍼 buf에서 저장된 디스크 분야의 자료 영역에서 파일의 자료를 읽는다. 512의 바이트의 이 자료는 목적지 파일에 써진다. 이것은 완전한 파일이 통합 일 때까지 반복된다.
기능 status=verify_the_sector (실린더, 머리, 분야); 읽힐 분야를 확인한다. 상태가 = 10, 그것 나쁜 (0xA) 분야를 대표하는 경우에. 기능의 코딩은 아래와 같이 주어졌다:
/// 분야를 확인하십시오. (아무 자료도 여기에서 옮겨지지 않는다) \\\
int verify_the_sector(unsigned int c,unsigned int h,unsigned int s)
{
int status;
char *buf;
union REGS in, out;
struct SREGS sg;
in.h.ah = 0x04; /* 기능 수 */
in.h.al = 1; /* 확인할 것이다 분야의 수*/
in.h.dl = 0x00; /* A를 위한 드라이브 수: */
in.h.ch = c; /* 실린더 수 */
in.h.dh = h; /* 맨 위 수 */
in.h.cl = s; /* 분야 수 */
in.x.bx = FP_OFF(buf);/* 분파 */
sg.es = FP_SEG(buf); /* 세그먼트*/
int86x(0x13,&in,&out,&sg); /* INT 13H의 기능 4H를 부르십시오*/
if(out.x.cflag)
{
status=out.h.ah;
}
return(status);
}
코딩에 대하여 코멘트:
기능 verify_the_sector는 (), _bios_disk () 기능 및 반환 이 읽힌 분야를 가동의 상태 확인한다. 기능은 분야를 확인하기 위하여 INT 13H와 기능 4H를 이용한다.
*buf는 자료 버퍼, 0x04이다 지정된 기능 수 in.h.ah = 0x04이다; 그리고 in.h.al = 1; 1개의 분야를 이번에 확인하기 위하여 설명한다. in.h.dl = 0x00; 플로피 드라이브 A를 위한 드라이브 수를 위해 사용된다: , c, h 및 s는 실린더의, 맨 위 및 분야 수이다.
기능 int86x는 () 세그먼트 기록기 가치를 가진 INT 13H (기능 4H)를 빌기 위하여 이용된다. 가동의 상태는 정수 상태에 의해 돌려보내진다.
|