Функция 18, подфункция 11 - получить информацию о дисковой подсистеме.
Параметры:
- eax = 18 - номер функции
- ebx = 11 - номер подфункции
- ecx = тип таблицы:
- 1 = короткая версия, 10 байт
- 2 = полная версия, 65536 байт
- edx = указатель на буфер (в приложении) для таблицы
Возвращаемое значение:
- функция не возвращает значения
Формат таблицы: короткая версия:
- +0: byte: информация о НГМД (дисководах для дискет), AAAABBBB,
где AAAA задаёт тип первого дисковода, BBBB - второго согласно
следующему списку:
- 0 = нет дисковода
- 1 = 360Kb, 5.25''
- 2 = 1.2Mb, 5.25''
- 3 = 720Kb, 3.5''
- 4 = 1.44Mb, 3.5''
- 5 = 2.88Mb, 3.5'' (такие дискеты сейчас уже не используются)
Например, для стандартной конфигурации из одного 1.44-дисковода
здесь будет 40h, а для случая 1.2Mb на A: и 1.44Mb на B:
значение оказывается 24h.
- +1: byte: информация о жёстких дисках и CD-приводах, AABBCCDD,
где AA соответствует контроллеру IDE0, ..., DD - IDE3:
- 0 = устройство отсутствует
- 1 = жёсткий диск
- 2 = CD-привод
Например, в случае HD на IDE0 и CD на IDE2 здесь будет 48h.
- +2: 4 db: число найденных разделов на жёстких дисках с
соответственно IDE0,...,IDE3.
При отсутствии жёсткого диска на IDEx соответствующий байт
нулевой, при наличии показывает число распознанных разделов,
которых может и не быть (если носитель не отформатирован или
если файловая система не поддерживается). В текущей версии ядра
для жёстких дисков поддерживаются только FAT16, FAT32 и NTFS.
- +6: 4 db: зарезервировано
Формат таблицы: полная версия:
- +0: 10 db: такие же, как и в короткой версии
- +10: 100 db: данные для первого раздела
- +110: 100 db: данные для второго раздела
- ...
- +10+100*(n-1): 100 db: данные для последнего раздела
Разделы расположены в следующем порядке: сначала последовательно все
распознанные разделы на HD на IDE0 (если есть),
затем на HD на IDE1 (если есть) и т.д. до IDE3.
Формат информации о разделе:
- +0: dword: начальный физический сектор раздела
- +4: dword: последний физический сектор раздела
(принадлежит разделу)
- +8: byte: тип файловой системы:
16=FAT16, 32=FAT32, 1=NTFS
- формат дальнейших данных зависит от файловой системы,
может меняться с изменениями в ядре и поэтому не описывается
Замечания:
- Короткая таблица может быть использована для получения информации
об имеющихся устройствах.