Шаг 15 - Что такое IOCTL

Действительно функции MS DOS и BIOS обеспечивают нас многими возможностями. Но не всеми. А только самыми необходимыми, стандартными. Но устройств много и много специфических возможностей. Сама аббревиатура IOCTL это I/O Control. Реализуется этот контроль ввода вывода прерыванием Int 21H функцией 44H. Естественно что шаги по TASM я пишу не просто так. Если Вы читаете раздел VC++ то последние шаги на данный момент там были "Шаг 165 - Получения дескриптора VXD", "Шаг 166 - Функция DeviceIoControl". Наверно часть народа догадалась после этого шага к чему я клоню. Итак, эта функция 44h обеспечивает прямую связь между прикладной программой и драйвером устройства. Позволяет программе получать аппаратно-зависимую информацию и запрашивать операции, которые не поддерживаются другими функциональными вызовами MS-DOS. Вот оно. Эта функция позволяет работать напрямую с драйвером оборудования. А драйвера оборудования пишутся тоже по правилам. И если драйвер написан по правилам, то мы может к нему обратиться используя эту функцию. Вот так. Итак, как мы управляем устройствами можем несколькими методами, смотрим схему.

15_1.gif (3293 b)

Мы можем использовать функции DOS, они умеют делать операции высокого уровня например создать файл. Мы можем использовать BIOS это более мелкие операции как например абсолютное чтение сектора с диска. DOS скорее всего то же пользуется функциями BIOS. И наконец мы можем использоваться функций DOS 44h для обращения к драйверу устройства. В каком он виде программном или аппаратном в данном случае нас не волнует.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.