|
Структура заголовка запроса
-----------------------------------------------------------------
request equ ds:[bx] ; базовый адрес заголовка
reqhdr struc ; запроса.
length db ? ; длина блока запроса (байт).
unit db ? ; количество устройств.
command db ? ; код команды для драйвера.
status dw ? ; возвращаемое состояние.
db 8 dup (?) ; резерв.
reqhdr ends
-----------------------------------------------------------------
Причина того, что программа СТРАТЕГИЙ обязана сохранять адрес
заголовка запроса заключается в том, что MS-DOS выполняет не
единственное обращение к драйверу для выполнения определенной ко-
манды. На самом деле, система сначала делает предварительное об-
ращение к драйверу для того, чтобы информировать драйвер о том,
что он должен сделать и затем делает повторное обращение для вы-
полнения требуемых действий.
Такое двухэтапное обращение к драйверу имеет смысл при работе
в MS-DOS какой-либо многозадачной системы. |
словарь |
|
{img2} |
програмное обеспечение |
|
В этом случае запросы
к драйверу от разных задач могут выдаваться в любой момент време-
ни. Путем выделения в драйвере самостоятельных частей анализа
- 6-24 -
запроса и выполнения запроса драйвер может принимать множество
запросов, одновременно удовлетворяя полученный ранее запрос.
MS-DOS передает программе СТРАТЕГИЙ адрес блока запроса в ре-
гистрах ES:BX. |
словарь |
|
{img3} |
русско английский словарь |
|
Хотя программа СТРАТЕГИЙ должна сохранять сам блок
запроса, большинство драйверов ограничивается сохранением его ад-
реса. Это возможно из-за того, что MS-DOS в настоящее время вызы-
вает программу ПРЕРЫВАНИЙ непосредственно после возврата управле-
ния от программы СТРАТЕГИЙ, не изменяя информации в блоке
запроса. |
winrar |
|
|
перевод с английского на русский, операционная система windows, русско английский словарь, системы резервного копирования, антивирус, .
norton
|
Он
показывает MS-DOS сколько отдельных устройств поддерживается дан-
ным драйвером. Такая возможность необходима потому, что многие
контроллеры поддерживают более одного физического дисковода. Так
как остальные семь байт поля в этом случае не используются, там
можно хранить имя устройства для поиска драйвера в памяти или для
идентификации драйвера. Например, поле количества устройств драй-
вера RAM-диска, называемого RDISK (см. листинг 6-10), может быть
определено как :
UNIT_FIELD DB 1, 'RDISK '
Программа СТРАТЕГИЙ
Следующий раздел драйвера устройства - это программа СТРАТЕ-
ГИЙ. В листинге 6-1 она занимает только три строки выполняемых
кодов. Единственное назначение программы СТРАТЕГИЙ заключается в
сохранении адреса блока запроса для последующего его использова-
ния программой ПРЕРЫВАНИЙ.
Что представляет собой блок запроса? Листинг 6-2 представляет
структуру заголовка запроса. С него начинается любой блок запроса
ввода/вывода к драйверу. Для блока запроса может иногда требо-
ваться больше информации, чем содержится в в заголовке запроса,
поэтому заголовок содержит поле длины информации. К заголовку
запроса мы еще вернемся, а сейчас продолжим обсуждение программы
СТРАТЕГИЙ.
Листинг 6-2.
|
|
|