|
Для дисковых устройств коман-
ды DEVICE OPEN и DEVICE CLOSE можно использовать для подсчета
числа открытий определенного устройства, например, числа открытых
файлов на диске. Это может быть полезно при определении недопус-
тимости смены дискеты в дисководе, если на момент замены носителя
- 6-21 -
оставались открытые файлы.
Для символьных устройств команды DEVICE OPEN и DEVICE CLOSE
выдаются всегда, когда соответствующее устройство открывается и
закрывается, независимо от режима совместного использования фай-
лов, так что загрузка команды SHARE.EXE не требуется. При работе
с устройствами могут быть использованы только функции MS-DOS 3DH
("Открыть файл при помощи описателя") и 3H ("Закрыть файл при по-
мощи описателя"), так как FCB-метод не работает с устройствами.
Для символьных устройств команды DEVICE OPEN и DEVICE CLOSE могут
быть использованы для предотвращения одновременного доступа к та-
ким устройствам, как принтер или модем, а также для вызова проце-
дур пред- и после обработки, таких как процедуры настройки прин-
тера или завершение сеанса связи для модема.
Заметим, что устройства CON, AUX и PRN открыты всегда, так как
связаны с описателями 0, 1, и 2 (STDIN, STDOUT и STDERR -- все
отображаются на устройство CON), описателем 3 (STDAUX, отображае-
мый на устройство AUX) и описателем 4 (STDPRN, отображаемый на
устройство PRN).
Команда CHECK FOR REMOVABLE MEDIA выдается при вызове пользо-
вателем функции MS-DOS 44H ("Управление работой устройств") с
подкомандой номер 8. Драйвер должен вернуть информацию о наличии
сменного либо несменного носителя.
Атрибут OCRM (Open/Close/Removable Media) также учитывается
при обработке драйвером команды BUILD BPB ("Построить блок пара-
метров BIOS"). Сменный носитель может содержать "идентификатор
тома", одиннадцатисимвольное имя диска. Если устройство поддержи-
вает сменный носитель, имя тома должно быть определено и обрабо-
тано драйвером. Подробнее об этом можно найти при описании коман-
ды BUILD BIOS PARAMETER BLOCK.
БИТЫ с 10 по 7 : Зарезервированы.
---------------------------------
БИТ6: GIOCTL. В MS-DOS версии 3.3 бит GIOCTL ("Группа команд уп-
равления") устанавливается в 1 для индикации того, что блоковый
или символьный драйвер поддерживает дополнительные подкоманды ко-
мандой 19 (GENERIC I/O CONTROL REQUEST). Если этот бит разрешает
использование команды 19, драйвер должен также поддерживать ко-
манды 23 и 24 (GET/SET LOGICAL DRIVE -- Получить/Установить имя
логического диска).
При поддержке драйвером указанных команд, программа пользова-
теля может выдать команду GENERIC I/O CONTROL REQUEST с помощью
функции 44H MS-DOS (подфункции 0CH и 0DH). Для блоковых драйверов
команды GET/SET LOGICAL DRIVE могут быть выполнены вызовом под-
функций 0H (GET LOGICAL DRIVE) и 0FH (SET LOGICAL DRIVE) функции
MS-DOS 44H.
|