Статус
нашего
сайта:
ICQ Secrets Center is Online  ICQ Information Center


ICQ SHOP
     5-значные
     6-значные
     7-значные
     8-значные
     9-значные
     Rippers List
ОПЛАТА
СТАТЬИ
СЕКРЕТЫ
HELP CENTER
OWNED LIST
РОЗЫСК!New!
ICQ РЕЛИЗЫ
Протоколы ICQ
LOL ;-)
Настройка компьютера
Аватарки
Смайлики
СОФТ
     Mail Checkers
     Bruteforces
     ICQTeam Soft
     8thWonder Soft
     Other Progs
     ICQ Patches
     Miranda ICQ
ФорумАрхив!
ВАШ АККАУНТ
ICQ LiveJournal

Реклама

Наш канал:

irc.icqinfo.ru

Скотт Мюлле- Модернизация и ремонт ПК стр.723


Скотт Мюлле- Модернизация и ремонт ПК стр.723

Интерфейс, обеспечивающий связь между пользовательским приложением и накопителем, включает четыре уровня:

■ прерывание DOS Int 21h;

■ прерывания DOS Int 25h и Int 26h;

■ дисковое прерывание ROM BIOS Int 13h;

■ команды для управления дисковым контроллером ввода-вывода.

Каждый уровень выполняет несколько конкретных функций, причем все они работают как для дисководов, так и для жестких дисков, хотя на уровне Int 13h существуют различия между работой с дисководами и жесткими дисками. Контроллеры дисководов и жестких дисков существенно отличаются друг от друга, но уже на уровне обращения к дискам через Int 13h никакой разницы в работе нет. Рассмотрим более детально работу каждого уровня дискового интерфейса.

Прерывание Int 21h

Это прерывание находится на самом верхнем уровне в иерархии дискового интерфейса. Оно позволяет выполнять наиболее сложные операции с дисками. Например, если пользовательскому приложению нужно создать каталог, ему достаточно вызвать функцию 39h прерывания Int 21h. Эта функция самостоятельно выполнит все необходимые для создания нового каталога действия, включая модификацию структуры каталогов и секторов FAT. Все, что требуется передать данной функции, — это имя создаваемого подкаталога. Int 21h выполняет значительный объем работы как при создании каталога, так и при других дисковых операциях, поэтому в большинстве случаев приложения используют его для работы с дисками.

Прерывания Int 25h и Int 26h

Эти прерывания выполняют операции значительно более низкого уровня по сравнению с Int 21h. Они могут только читать с диска указанные секторы (Int 25h) или записывать их на диск (Int 26h). Если вы захотите с помощью только этих функций создать на диске новый каталог, придется выполнить ряд действий.

■ Точно рассчитать, какой именно каталог и какие секторы FAT необходимо модифицировать.

■ Прочитать эти секторы с помощью Int 25h.

■ Изменить содержимое считанных секторов так, чтобы в них находилась информация о новом каталоге.

■ Записать измененные секторы на диск с помощью Int 26h.

И это только основные моменты. На самом деле все гораздо сложнее, особенно если учесть количество секторов, которые нужно изменить. Кроме того, все секторы при использовании Int 25h и Int 26h нумеруются, начиная с нуля, и доступ к ним происходит именно по этим номерам. Поэтому необходимо определить, где находятся секторы, которые нужно модифицировать. Учитывая все эти обстоятельства, большинство программистов предпочитают использовать Int 21h, чтобы каждый раз не писать заново дисковый интерфейс.

Прерываниями Int 25h и Int 26h обычно пользуются только программы редактирования диска на уровне секторов. Такие программы могут работать только с теми секторами, которые входят в область какого-либо логического диска DOS.

Прерывание Int 13h

Следующий (еще более низкий) уровень дискового интерфейса — прерывание Int 13h, обработчик которого обычно содержится в ROM BIOS, хотя он может быть заменен обработчиком из какого-либо драйвера. Поскольку операционная система загружается с диска, ей требуется находящийся в ROM BIOS обработчик Int 13h, так как никакие программные драйверы к этому моменту еще не загружены. Прерывание Int 13h работает непосредственно с контроллером диска, и поэтому его обработчик зависит от типа используемого контроллера.


⇐ Предыдущая страница| |Следующая страница ⇒

.