|
장 – 8
디스크 BIOS는 작용하고 C로 취급을 중단한다
소개
이 장에서 우리는 용도에 저희에게 자유를 주고 쉽고 짧은 방법과 더불어 C를 가진 우리의 프로그램에 있는 개입중단을, 취급하는 중요한 디스크 BIOS 기능을 및 다른 중요한 기능을 토론할 것이다. 이 기능은 뒤 - 자료 회복 및 디스크 분쟁 해결 프로그램의 뼈이다. 이들은 C 언어에게 "고도 어셈블리 언어"를 하는 기능이다.
biosdisk and _bios_disk Functions
이 2개의 기능은 자료 회복과 디스크 분쟁 해결 프로그램의 우리의 목적을 위한 가장 중요한 기능이다. 우리는 이 기능을 대부분의 시간에 사용할 것이다.
이 2개는 BIOS 디스크 드라이브 서비스이고 biosdisk가 익지않는 분야에 파일의 수준의 밑에 작동하는 bios.h에서 정의되었다. 이 기능이 배려의 부족에서 조차 조금 사용되는 경우에, 하드 디스크에 파일 내용 그리고 전화번호부를 파괴할 수 있다. biosdisk와 _bios_disk 둘 다 기능, BIOS에 디스크 가동을 직접적으로 발행하는 사용 개입중단 0x13. _bios_disk 기능은 뒤에 오는 방법에 있는 프로그램에서 선언된다:
unsigned _bios_disk(unsigned cmd, struct diskinfo_t *dinfo);
그리고 바이오스 디스크 기능을 위한 선언은 다음과 같이 이다:
int biosdisk(int cmd, int drive, int head, int track,
int sector, int nsects, void *buffer);
이 매개변수의 의미는 다음에 나오는 테이블에서 기술되었다:
매개변수 |
기능 |
그것이인 무엇 무슨을 |
cmd |
둘 다 |
가동을 읽는과 같이 실행하기 위하여 나타내고 등등을 쓰고, 확인한다 (다음 주어진 cmd의 묘사를 보십시오) |
dinfo |
_bios_disk |
잔여를 포함하는 diskinfo_t에 점은 구축한다
가동에 의해 요구되는 매개변수. (다음 주어진 diskinfo_t 구조의 묘사를 보십시오) |
드라이브 |
biosdisk |
어느 디스크 드라이브가 사용될 것인지 지정한다 (a를 위해 0: , 1for b: 그리고 첫번째 육체적인 하드 디스크를 위한 0x80, 두번째를 위한 0x81 등등.) |
머리
대위
분야 |
biosdisk
|
이들은 시작 분야 위치를 지정한다
가동은 시작될 것이다. |
nsects |
biosdisk |
읽을 것이다 분야의 수는, 등등을 쓰고, 확인한다. |
완충기 |
biosdisk |
자료가 읽히거나 써질 것인 곳에 기억 장치 주소 |
|
|