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 - не известно |