На главную
Подписка
Новости










Главная / MS-DOS / MS-DOS. РУКОВОДСТВО РАЗРАБОТЧИКА / Глава 6 / Работа с устройствами на основе описателей файлов Сделать домашней страницей Добавить в избранное Написать писмо

НАЗАД СОДЕРЖАНИЕ ВПЕРЁД

Работа с устройствами на основе описателей файлов

Хотя прямой доступ очень нужен при работе с файлами, он не имеет большого значения при работе с не дисковыми устройствами. При работе с такими устройствами метод доступа, использующий описатели, намного проще в использовании и не требует от программиста создания FCB. Кроме того, описатель-ориентированный метод доступа (ДОМД) поддерживает IOCTL (управление вводом/выводом) функцию 44H. Как мы вскоре увидим, IOCTL-функция может быть исключительно полезна для управления устройством.


При использовании ДОМД (описатель-ориентированного метода доступа) для работы с не дисковыми устройствами, программист не ограничен пересылкой одного байта за один раз. За одно обращение к функциям ввода/вывода может быть переслано с устройства или на устройство до 64 Kбайт. Как и при работе с дисками, использование этих функций для не дисковых устройств приводит к выполнению последовательной передачи данных. Используя, однако, IOCTL-функцию прямого управления, можно задать устройству дополнительные параметры. Так, например, если и устройство и его драйвер установлены в режим прямого доступа, можно использовать IOCTL-функцию для управления точками отправления и назначения при пересылке данных в устройстве.


Этот пример может помочь при иллюстрации потенциала прямого управления вводом/выводом с устройством. Предположим, что некоторая система имеет отображаемую на адресное пространство графическую подсистему. Данные из системной памяти в графическую пересылаются с использованием драйвера графического адаптера. По той причине, что этот адаптер не является устройством массовой памяти, драйвер для него должен быть символьным. Если ввод/вывод производится с использованием только ДОМД, нет никакого способа определить место в видео-памяти, куда должны быть посланы данные. Если же драйвер поддерживает IOCTL-функцию, место в графической памяти можно определить через канал управления.


НАЗАД СОДЕРЖАНИЕ ВПЕРЁД

Hosted by uCoz