7.2.2 Создание стратегии устройства.

Error message

Notice: Undefined index: add term path in hansel_get_breadcrumbs() (line 524 of /data/sites/msdosworld.ru/www/sites/all/modules/hansel/hansel.module).

 Процедура  стратегии  устройства  требует  только  пяти строк.
Когда  система загружает устройство, то она создает блок  данных,
называемый заголовком запроса. Он имеет две функции. Во-первых он
служит  областью  данных для внутренних операций системы.   Более
важно то, что заголовок запроса  служит  областью,  через которую


происходит  обмен  информацией между драйвером и  вызывающей  его
программой. Например, когда драйвер выводит данные, то ему дается
адрес данных через заголовок запроса.  Когда же драйвер завершает
свою работу, то он устанавливает  в заголовке запроса байт стату-
са,  который доступен вызывающей программе, тем самым давая  воз-
можность ей узнать об ошибке.
   MS DOS создает заголовок  запроса  при установке драйвера уст-
ройства  (когда  система загружается).  Процедура стратегии  уст-
ройства выполняется только один раз в этот момент. При этом ES:BX
указывают на вновь созданный заголовок запроса и процедуре  нужно
просто скопировать их, чтобы  впоследствии  он мог быть обнаружен
при  обращении к драйверу.  Адреса смещения и сегмента  заголовка
помещаются в две переменные. В  следующем разделе Вы увидите, что
при  обращении к драйверу, первое что он делает - восстанавливает
значения ES:BX, чтобы можно было получить информацию из заголовка
запроса.
   Размер заголовка запроса может меняться, в зависимости от типа
сделанного запроса к драйверу (напр.  инициализация, вывод данных
или возврат статуса). Однако первые 13 байт заголовка всегда одни
и те же. Их формат таков:

1. Длина заголовка запроса (DB).
2. Код устройства (DB). Определяет номер для блочных устройств.
3.   Код команды (DB).  Здесь хранится номер последней  посланной
драйверу команды. Эти коды перечислены в [7.2.3].
4. Статус (DW).   Статус  устанавливается  каждый  раз при вызове
драйвера. Если установлен бит 15, то в младших восьми битах нахо-
дится код ошибки. Коды ошибок перечислены в [7.2.3].
5. Резервная область (8 байтов). Используется MS DOS.
6. Данные необходимые для работы драйвера (переменной длины).

   Низкий уровень.

   Вот 5 строк процедуры стратегии  устройства. Отмечаем, что две
словные  переменные, хранящие значения ES и BX, следуют за  инст-
рукцией RET, как и положено в формате COM.

DEV_STRATEGY:   MOV  CS:KEEP_ES,ES
                MOV  CS:KEEP_BX,BX
                RET
KEEP_CS         DW ?
KEEP_BX         DW ?

 

Вы находитесь в разделе: 

Добавить коментарий