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

Драйверы


Что касается драйверов устройств, то версия 5.0 операционной системы содержит расширения для работы с командами общего ввода/вывода - GENERIC IOCTL.

В заголовке драйвера в слове атрибутов определен зарезервированный ранее бит 7. Если этот бит установлен в 1, драйвер поддерживает новую команду с кодом 19h. Эта команда позволяет операционной системе определить, спосбен ли данный драйвер работать с командами общего ввода/вывода (GENERIC IOCTL).

Для проверки возможности использования GENERIC IOCTL программа может вызвать одну из двух новых функций - 4410h или 4411h. Первая функция определяет поддержку GENERIC IOCTL для устройства, заданного своим индексом (handle), вторая - для устройства, заданного своим адресом (номером).

Функция 4410h:

Регистры на входе:



Регистр Содержимое
AX 4410h
BX Индекс (handle) устройства.
CH Код категории:

00h неизвестное устройство

01h COMn:

03h CON

05h LPTn:

CL Код функции, для которого необходимо выполнить проверку поддержки:

45h установить счетчик повторов

4Ah выбрать кодовую страницу

4Ch начать подготовку кодовой страницы

4Dh завершить подготовку кодовой страницы

5Fh установить информацию для отображения

65h получить счетчик повторов

6Ah запросить выбранную кодовую страницу

6Bh запросить подготовленный список

7Fh получить информацию для отображения

Регистры на выходе:

Регистр Содержимое
AX 0000h, флаг CF сброшен - данная функция GENERIC IOCTL поддерживается драйвером.

xx01h, флаг CF установлен в 1 - функция не поддерживается.

Функция 4411h:

Регистры на входе:

Регистр Содержимое
AX 4410h
BL Номер устройства.
CH Код категории (08h - диск)
CL Код функции, для которого необходимо выполнить проверку поддержки.

Регистры на выходе:

Регистр Содержимое
AX 0000h, флаг CF сброшен - данная функция GENERIC IOCTL поддерживается драйвером.

xx01h, флаг CF установлен в 1 - функция не поддерживается.



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