|
В листинге 6-10
(листинге драйвера RDISK, приведенного в конце главы) показано
определение структур для тех команд, которые обрабатываются этим
драйвером. Заметьте, что нам не нужно определять все поля в каж-
дом блоке, т.к. |
прокси сервера |
|
{img2} |
системы управления базой данных |
|
различные запросы часто используют похожие блоки
запросов. Это обстоятельство довольно удобно, т.к. |
резервное копирование данных |
|
|
MASM не позво-
ляет использовать одно и тоже имя более одного раза, даже для
различных структур.
Команда INIT
г==================================================================¬
¦ ¦
¦ Команда INIT (0) ¦
¦ ¦
¦ -------------------------------- ----¬ ¦
¦ +00 : 23 Длина ¦ X ¦ Блок. драйверы ¦
¦ -------------------------------- L---- ¦
¦ +01 : Устройство ----¬ ¦
¦ -------------------------------- ¦ X ¦ Симв. |
сетевой экран |
|
|
avast edition, avast 4 professional, kaspersky, офисные программы, доктор веб, .
програмное обеспечение
|
Слово состояния драйвера устройства
Бит ERROR устанавливается, если возникла ошибка при выполнении
какой-либо команды или если команда является недопустимой для
данного драйвера. При установленном бите ошибки драйвер обязан
поместить соответствующий код ошибки в биты с 0 по 7 слова состо-
яния. Возможные ошибки и их коды перечислены в таблице 6-3. Бит
DONE должен всегда устанавливаться драйвером перед возвратом уп-
равления к MS-DOS.
Таблица 6-3
Коды ошибок драйверов устройств
------------------------------------T----------------------------
Код Ошибка ¦Код Ошибка
------------------------------------+----------------------------
0 Запись на устройство запрещена ¦ 8 Сектор не обнаружен
1 Неопознанное устройство ¦ 9 Нет бумаги в принтере
2 Устройство не готово ¦ A Ошибка при записи
3 Команда не опознана ¦ B Ошибка при чтении
4 Неверно переданы данные ¦ C Общая ошибка
5 Неверна длина заголовка запроса¦ D Зарезервировано
6 Ошибка при установке головки ¦ E Зарезервировано
7 Неопознанный носитель данных ¦ F Недопустимая смена диска
------------------------------------+----------------------------
Примечание 1. Все коды ошибок представлены в виде шестнадцати-
ричных значений.
Примечание 2. Код ошибки 0FH поддерживается только в MS-DOS вер-
сии 3.0 и более поздних.
- 6-29 -
Команды драйверов устройств
Заголовок запроса, как правило, содержит не всю информацию,
которая требуется для большинства команд. Команд, которые не тре-
буют дополнительной информации, довольно мало -- это команды
INPUN/OUTPUT STATUS , FLUSH OUTPUT, OPEN/CLOSE DEVICE и REMOVABLE
MEDIA. Все остальные команды требуют гораздо больше информации,
чем содержится в заголовке запроса. Для каждой из этих команд к
заголовку запроса добавляется дополнительная информация. Поле
request.length заголовка запроса содержит при этом общий размер
блока запроса (в байтах).
Для облегчения доступа к различным элементам блока запроса,
опять-таки, могут быть использованы структуры.
|
|
|