Функция 70 - работа с файловой системой с поддержкой длинных имён.
Параметры:
- eax = 70
- ebx = указатель на информационную структуру
Возвращаемое значение:
Общий формат информационной структуры:
- +0: dword: номер подфункции
- +4: dword: смещение в файле
- +8: dword: старший dword смещения (должен быть 0) или поле флагов
- +12 = +0xC: dword: размер
- +16 = +0x10: dword: указатель на данные
- +20 = +0x14: n db: ASCIIZ-строка с именем файла
или
- +20 = +0x14: db 0
- +21 = +0x15: dd указатель на ASCIIZ-строку с именем файла
Уточнения - в документации на соответствующую подфункцию.
Имя файла нечувствительно к регистру букв. Русские буквы должны быть
записаны в кодировке cp866 (DOS).
Формат имени файла:
/base/number/dir1/dir2/.../dirn/file,
где /base/number идентифицирует устройство, на котором ищется файл:
одно из
- /RD/1 = /RAMDISK/1 для доступа к рамдиску
- /FD/1 = /FLOPPYDISK/1 для доступа к первому флоппи-дисководу,
/FD/2 = /FLOPPYDISK/2 для второго флоппи-дисковода
- /HD0/x, /HD1/x, /HD2/x, /HD3/x для доступа соответственно
к жёстким дискам на IDE0 (Primary Master), IDE1 (Primary Slave),
IDE2 (Secondary Master), IDE3 (Secondary Slave);
x - номер раздела на выбранном винчестере, изменяется от 1 до 255
(на каждом из винчестеров нумерация начинается с 1)
- /CD0/1, /CD1/1, /CD2/1, /CD3/1 для доступа соответственно
к CD на IDE0 (Primary Master), IDE1 (Primary Slave),
IDE2 (Secondary Master), IDE3 (Secondary Slave)
- /SYS - определяет системную папку; при обычной загрузке системы
с дискеты эквивалентно /RD/1
Примеры:
- '/rd/1/kernel.asm',0
- '/HD0/1/kernel.asm',0
- '/hd0/2/menuet/pics/tanzania.bmp',0
- '/hd0/1/Program files/NameOfProgram/SomeFile.SomeExtension',0
- '/sys/MySuperApp.ini',0
Доступные подфункции:
Для CD-приводов в связи с аппаратными ограничениями доступны
только подфункции 0,1,5 и 7, вызов других подфункций завершится
ошибкой с кодом 2.
При первом обращении подфункций 0,1,5,7 к устройствам ATAPI
(CD и DVD) производится блокировка ручного управления механизмом
лотка. Это связано с кэшированием данных, полученных от привода.
Разблокировка осуществляется при обращении подфункции 4 функции 24
к соответствующему устройству.