|
Глава - 8
Диск - функции BIOS и прерывания контакта с C
Введение
В этой главе мы будем обсуждать важные Disk BIOS функций и других важных функций, которые дают нам свободу использования и обработки прерываний в нашей программе с С с короткий и простой метод. Эти функции щие в области восстановления данных и поиска неисправностей диск программирование. Эти функции, которые делают язык C "высокого уровня Ассамблеи по умолчанию".
biosdisk and _bios_disk Functions
Эти две функции являются наиболее важной функцией для наших целей по восстановлению данных и поиска неисправностей диск программирование. Мы будем использовать эти функции большую часть времени.
Эти два диска BIOS и услуги, определенные в bios.h biosdisk где работает ниже уровня досье на сырьевые секторы. Если такие функции используются даже немного отсутствие заботы, она может повредить содержимого файлов и директорий на жестком диске. Как и _bios_disk biosdisk функций, использовать вопрос прерывания для операций с диском непосредственно к BIOS. _bios_disk Функции прописаны в программе в следующем порядке :
unsigned _bios_disk(unsigned cmd, struct diskinfo_t *dinfo);
И декларации по BIOS диск функция выглядит следующим образом :
int biosdisk(int cmd, int drive, int head, int track,
int sector, int nsects, void *buffer);
Значение этих параметров описано в следующей таблице :
ParameterПараметр |
FunctionФункция |
What It
Is or what it doesКакие It Is
или чем она занимается |
cmdcmd |
BothИ |
Indicates the
operation to perform such as read, write, verify
etc.(See the description of cmd, given
next)Указывает операцию выполнять, как читать,
писать, проверять т.д. (См. описание cmd, с учетом
следующего) |
dinfodinfo |
_bios_disk_bios_disk |
Points to a
diskinfo_t structure that contains the
remainingВопросы к diskinfo_t структуру, которая
содержит остальные
Parameters
required by the operation.(see the description of
diskinfo_t structure, given next)Параметры
требуется операция. (См. описание структуры diskinfo_t
ввиду следующего) |
driveпривод |
biosdiskbiosdisk |
Specifies which
disk drive is to be used(0 for a:, 1for b: and 0x80 for
first physical hard disk, 0x81 for second and so
on.)Задает диск, которые должны быть использованы
(0 :, 1for b : и кодировке для первого физического
жесткого диска 0x81 для второго и так далее.) |
headруководитель
trackотслеживать
sectorсектор |
biosdiskbiosdisk
|
These specify
the starting sector location from which theВ них
указано, начиная от сектора расположения которых
Operation is to
be started.Операция должна быть начата. |
nsectsnsects |
biosdiskbiosdisk |
Number of
sectors to read, write, verify etc.Число секторов
для чтения, записи, проверки т.д. |
bufferбуфера |
biosdiskbiosdisk |
Memory address
where data is to be read or writtenАдрес памяти,
где данные должны считываться или письменного |
|
|
|
|
|