Системное программное обеспечение. Рощин А.В. - 137 стр.

UptoLike

Составители: 

137
13. Открытие устройства
Эта команда сообщает драйверу о появлении файла, открытого для
записи или чтения. Драйвер может учитывать наличие открытых файлов
перед выполнением операций чтения и записи. Для обработки команды
открытия и закрытия устройства в слове атрибутов заголовка устройства
должен быть установлен бит открытия/закрытия/сменный.
14. Закрытие устройства
Эта команда выдается
в драйвер, когда программа закрывает
устройство (при закрытии файла на диске).
По командам открытия и закрытия устройства драйвер может
подсчитывать количество открытых файлов. При отсутствии открытых
файлов драйвер может блокировать операции ввода и вывода.
15. Сменный носитель
Эта команда позволяет запросить драйвер устройства, является ли
носитель сменным. (В случае несменного носителя
программа может
считать, что смены диска не было.) Эта команда выдается в драйвер, если в
слове атрибутов заголовка устройства установлен бит
открытия/закрытия/сменный.
5.4 Создание драйверов блочных устройств
Для написания драйвера блочного устройства (обычно это диски)
необходимо хорошо представлять себе структуру данных этого блочного
устройства. Ниже рассматривается пример драйвера
блочного устройства
драйвер RAM-диска. Для корректного написания такого драйвера
рассмотрим сначала структуру данных диска.
Загрузочная запись имеется на любом диске и размещается в
начальном секторе. Она состоит из команды перехода на программу
начальной загрузки, идентификатора поставщика, блока параметров BIOS
(BPB) и программы начальной загрузки.
jmp Идентификатор поставщика BPB Процедура загрузки
Переход на начало программы загрузки (3 байта)
Идентификатор поставщика (8 байтов) – DOS не используется. Обычно
здесь обозначена фирма и версия DOS.
ВРВ (BIOS Parameter Block – 19 байтов) – информация о диске для DOS.
Процедура загрузки соджержит коды программы начальной загрузки,
которая загружается в память и получает управление. Она загружает
резидентные драйверы, формирует связный список драйверов,
                                   137




      13. Открытие устройства
     Эта команда сообщает драйверу о появлении файла, открытого для
записи или чтения. Драйвер может учитывать наличие открытых файлов
перед выполнением операций чтения и записи. Для обработки команды
открытия и закрытия устройства в слове атрибутов заголовка устройства
должен быть установлен бит открытия/закрытия/сменный.
      14. Закрытие устройства
     Эта команда выдается в драйвер, когда программа закрывает
устройство (при закрытии файла на диске).
     По командам открытия и закрытия устройства драйвер может
подсчитывать количество открытых файлов. При отсутствии открытых
файлов драйвер может блокировать операции ввода и вывода.
      15. Сменный носитель
      Эта команда позволяет запросить драйвер устройства, является ли
носитель сменным. (В случае несменного носителя программа может
считать, что смены диска не было.) Эта команда выдается в драйвер, если в
слове     атрибутов     заголовка      устройства    установлен       бит
открытия/закрытия/сменный.

      5.4 Создание драйверов блочных устройств
     Для написания драйвера блочного устройства (обычно это диски)
необходимо хорошо представлять себе структуру данных этого блочного
устройства. Ниже рассматривается пример драйвера блочного устройства –
драйвер RAM-диска. Для корректного написания такого драйвера
рассмотрим сначала структуру данных диска.
     Загрузочная запись имеется на любом диске и размещается в
начальном секторе. Она состоит из команды перехода на программу
начальной загрузки, идентификатора поставщика, блока параметров BIOS
(BPB) и программы начальной загрузки.

jmp    Идентификатор поставщика      BPB         Процедура загрузки

Переход на начало программы загрузки (3 байта)

• Идентификатор поставщика (8 байтов) – DOS не используется. Обычно
  здесь обозначена фирма и версия DOS.
• ВРВ (BIOS Parameter Block – 19 байтов) – информация о диске для DOS.
• Процедура загрузки соджержит коды программы начальной загрузки,
  которая загружается в память и получает управление. Она загружает
  резидентные драйверы, формирует связный список драйверов,