Истории о вирусах

DOS, функция 32h Получить информацию DOS о диске


(Официально не документирована)

Вход:

AH=32h

DL - номер диска (0 - текущий, 1 - А и так далее)

Выход:

AL=OOh, если в DL был задан корректный диск

DS:BX - адрес блока информации о диске для запрошенного уст-

ройства (Таблица Б-6)

AL=FFh, если в DL был задан некорректный диск

Описание.

Возвращает блок информации, представляющей интерес для приложе-

ний и утилит, которые выполняют доступ к дискам, поддерживаемым



драйверами устройств, на уровне секторов.

Некоторые дисководы (особенно незагружаемые) функционируют только

через свои драйвера устройств. Такие диски могут содержать неверную

информацию в корневой записи и таблице разделов, что делает очень

трудным определение, например, размера корневого оглавления, числа

таблиц FAT и прочего. Блок информации диска содержит такие данные

в хорошо форматированной структуре.

Версии: DOS 2.00 и выше.

Таблица Б-6. Формат блока информации о диске.

Смещ. Размер Описание
+00h байт Номер диска (0 - текущий, 1 - А и так далее)
+01h байт Количество блоков в драйвере диска
+02h слово Количество байт в секторе

+04h байт Наибольший номер сектора в кластере
+05h байт Счетчик сдвига для конвертации кластера в сектор
+06h слово Количество зарезервированных секторов в начале диска
+08h байт Количество FAT
+09h слово Количество входов в root-директорию
+OBh слово Номер первого сектора, содержащего данные
+ODh слово Максимальный номер кластера
+OFh байт Количество секторов в FAT

+10h слово Номер первого сектора директории
+12h двойное слово Адрес заголовка драйвера устройства
+16h байт ID (отражает тип диска)
+17h байт OOh, если диск доступен и FFh, если нет
+18h двойное слово Указатель на следующий блок информации о диске
Для версий DOS 2.XX
+lCh слово Кластер, содержащий старт текущей директории.

OOOOh - root, FFFFh - не известно

+lEh 64 байта Путь текущей директории для диска в формате ASCIZ
Для версий DOS 3.XX
+lCh слово Кластер, с которого начинается поиск свободного места

при записи некоторого количества секторов на диск

+lEh слово Количество свободных секторов на диске.

FFFFh - не известно

<
Таблица Б-6. Формат блока информации о диске. {Окончание)

Смещ. Размер Описание
Для версий DOS 4.XX - 6.ХХ
+OFh слово Количество секторов в FAT

+llh слово Номер первого сектора директории
+13h двойное слово Адрес заголовка драйвера устройства
+17h байт ID (отражает тип диска)
+18h байт OOh, если диск доступен, и FFh, если нет
+19h двойное слово Указатель на следующий блок информации о диске
+lDh слово Кластер, с которого начинается поиск свободного кластера

при записи некоторого количества секторов на диск
+lFh слово Количество свободных секторов на диске.

FFFFh - не известно

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