Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
labs&konspeckts / SP_ukr / asm_14_доперевести.doc
Скачиваний:
15
Добавлен:
12.05.2015
Размер:
408.06 Кб
Скачать

Описание функций для работы с файлами с длинными именами:

716Сh - открыть или создать файл

Вход

AX

716ch

BX

Режимы доступа и флаги (см. таблицу 3)

CX

Атрибуты файла (см. таблицу 2)

DX

Управление действиями при существовании/отсутствии файлов:

- бит 0 - Открыть файл (вернуть ошибку, если файл не существует)

- бит 1 - Заменить файл (вернуть ошибку, если файл не существует)

- бит 4 - Создать файл (вернуть ошибку, если файл существует)

DS:SI

Указывают на строку в формате ASCIZ, обозначающую имя файла

DI

Порядковый номер, который добавляется в конце короткого имени (для этого должен быть задан флаг 0400hв регистреBX)

Выход

CF

0 – успешное выполнение операции,

1 – при выполнении произошла ошибка

AX

Дескриптор файла, если операция завершена успешно,

Код ошибки в случае ошибки (см. табл. 6)

CX

Состояние выполнения операции:

1 - файл открыт

2 - файл создан и открыт

3 – файл перезаписан (заменён)

7141H – удаление файла с длинным именем.

Вход

AX

714Eh

DS:DX

адрес строки ASCIZс длинным именем файла

SI

0000h– использование маски запрещено и атрибуты в СХ игнорируются

0001h– маски в имени файла разрешены и атрибуты в СХ используются

CL

Атрибуты, которые файлы могут иметь (см. табл. 2)

CH

Атрибуты, которые файлы должны иметь (см. табл. 2)

Выход

CF

0 – файл или файлы найдены или удалены

1 – произошла ошибка

АХ

Код ошибки, если произошла ошибка (см. табл. 6)

714Eh - поиск первого соответствующего файла с длинным именем

Функцию можно применять, только если запущен IFSmgr, который всегда запускается при обычной установкеWindows, но не запускается, например, с загрузочной дискетыMS-DOS7.0

Вход

АХ

714Еh

CL

Атрибуты, которые файл может иметь (биты 0 и 5 игнорируются) (см. табл. 2)

CH

Атрибуты, которые файл должен иметь (см. табл. 2)

SI

0000h- использоватьWindows-формат даты и времени

0001h- использоватьDOS-формат даты и времени (см. табл. 4)

DS:DX

адрес ASCIZ-строки с маской для поиска (Может включать * и ?. Для совместимости, маска *.* ищет все файлы, а не только файлы, содержащие точку в имени)

ES:DI

адрес 318-байтного буфера для информации о файле (см. табл. 5)

Выход

CF

0 – найден соответствующий файл

1 – произошла ошибка

АХ

- поисковый идентификатор, если не было ошибки

- код ошибки, если произошла ошибка (см. табл. 6)

СХ

Unicode-флаг:

бит 0 - длинное имя содержит подчёркивания вместо непреобразуемых Unicode-символов

бит 1 - короткое имя содержит подчёркивания вместо непреобразуемых Unicode-символов

Для поиска всех возможных файлов рекомендуется в CXзаносить 00FFh

714Fh – найти следующий файл

Вход

AX

714Eh

BX

Поисковый идентификатор (от функции 4Eh)

SI

Формат даты времени (см. функцию 714Eh)

ES:DI

Адрес буфера для информации о файле

Выход

CF

0, если найден следующий файл

1, если ошибка

СХ

Unicode-флаг, если следующий файл найден

AX

Код ошибки при ошибке. (см. табл. 6)

71А1h – закончить поиск файла

Вход

АХ

71А1h

ВХ

поисковый идентификатор

Выход

CF

0 – если следующий файл найден

1 – если произошла ошибка

АХ

Код ошибки, если произошла ошибка (см. табл. 6)

7139h – создание директории с длинным именем

Вход:

АХ

7139h

DS:DX

адрес ASCIZ-сроки с путём

Выход:

CF

0 – операция выполнена успешно

1 – произошла ошибка

AX

Код ошибки, если произошла ошибка (см. табл. 6)

713Аh – удаление директории с длинным именем

Вход:

АХ

713Аh

DS:DX

Адрес ASCIZ-сроки с путём

Выход:

CF

0 – операция выполнена успешно

1 – произошла ошибка

AX

Код ошибки, если произошла ошибка (см. табл. 6)

7147h - определить текущую директорию с длинным именем

Вход:

АХ

7147h

DL

Номер диска

DS:SI

64-байтный буфер для текущего пути (ASCIZ-строка без имени диска, первого и последнего символов \)

Выход:

CF

0 – операция выполнена успешно

1 – произошла ошибка

AX

Код ошибки, если произошла ошибка (см. табл. 6)

713Bh – сменить директорию с длинным именем

Вход:

АХ

713Bh

DS:DX

Адрес ASCIZ-сроки с путём

Выход:

CF

0 – операция выполнена успешно

1 – произошла ошибка

AX

Код ошибки, если произошла ошибка (см. табл. 6)

71A0h – получить информацию о разделе файловой системы VFAT

Вход:

AX

DS:DX

ASCIZ (db “C:\”,0)

ES:DI

(FAT, NTFS, CDFS)

CX

(ES:DI)

Выход:

CF

0 – операция выполнена успешно

1 – произошла ошибка

AX

0000hили 0200h, если операция завершена успешно

Код ошибки при CF=1 (см. табл. 6)

BX

Флаги файловой системы:

бит 0 – функции поиска учитывают регистр символов

бит 1 – регистр символов сохраняется для имён директорий

бит 2 – используются символы Unicode

бит 14 – поддерживаются функции работы с файлами с длиннымит именами

бит 15 – включено сжатие раздела (Doublespace)

CX

Максимальная длина имени файла (обычно 255)

DX

Максимальная длина пути (обычно 260) (в Windows95SP1 возвращается 0000hдляCD-ROM)

Соседние файлы в папке SP_ukr