[Назад] [Далее]

5.11.2. Блочные устройства

Блочные устройства — это устройства, на которых DOS может организовать файловую систему. DOS не работает напрямую с дисками через BIOS, а только с драйверами блочных устройств, каждое из которых представляется системе как линейный массив секторов определенной длины (обычно 512 байт) с произвольным доступом (для BIOS, к примеру, диск — это четырехмерный массив секторов, дорожек, цилиндров и головок). Каждому загруженному устройству DOS присваивает один или несколько номеров логических дисков, которые соответствуют буквам, используемым для обращения к ним. Так, стандартный драйвер дисков получает буквы «А», «В», «С» и так далее, по числу видимых разделов на диске.

Рассмотрим атрибуты и команды, которые передаются блочным устройствам.

Команды и структура переменной части буфера запроса для них (только то, что отличается от аналогичных структур для символьных устройств):

ВРВ — это 25-байтная структура (53 для FAT32), которая описывает блочное устройство. Ее можно найти по смещению 0Bh от начала нулевого сектора на любом диске:

(следующие поля действительны только для дисков, использующих FAT32)

Для всех остальных команд в поле буфера запроса со смещением +1 размещается номер логического устройства из числа обслуживаемых драйвером, к которому относится команда:

Для написания своего драйвера блочного устройства можно пользоваться схемой, аналогичной символьному драйверу из предыдущей главы. Единственное важное отличие — процедура инициализации должна будет подготовить и заполнить ВРВ, а также сообщить DOS число устройств, для которых действует этот драйвер.


п»ї
"target=_blank><\/a>") //-->