Операционная система MS DOS

# 19 - Функции управления вводом/выводом (IOCTL)


Команда с кодом 19 предназначена для выполнения нескольких функций и поддерживается только теми драйверами, у которых в слове атрибутов устройства установлен в 1 бит поддержки IOCTL (бит 14). Эта команда поддерживается DOS версии 3.2 и более поздних версий.

Команда используется для выполнения ряда операций с дисками, доступных обычно лишь на уровне BIOS, например, форматирования, чтение/запись секторов по их абсолютному номеру и т.д. Имеется стандартный интерфейс для различных типов дисков, обеспечиваемых драйвером логических дисков DRIVER.SYS.

DOS имеет специальную функцию номер 44h прерывания 21h. Эта функция имеет множество подфункций и предназначена для поддержки IOCTL. Очень скоро мы займемся этой функцией DOS, а сейчас приведем формат запроса для команды с кодом 19:



(0) 13 header Заголовок запроса.
(+13) 1 funct Это поле содержит код функции команды общего IOCTL.
(+14) 1 subfunc Код подфункции для функции funct.
(+15) 2 si_reg Значение регистра SI при вызове функции 44h прерывания 21h. Эта функция DOS предназначена для управления вводом/выводом.
(+17) 2 di_reg Значение, передаваемое при вызове функции 44h прерывания 21h через регистр DI.
(+19) 4 buf Указатель на буфер данных, содержащий управляющую информацию для устройства или предназначенный для приема информации от устройства.



Содержание раздела