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