Замечания:
Дублирование описателя через 45H или 46H дублирует и блокировки. Даже если во время OPEN выбран режим доступа Inherit, механизм блокировки не даст никаких привилегий доступа порожденным процессам, созданным функцией 4bH EXEC (они трактуются как отдельные). Важно, чтобы все блокировки файла были сняты до завершения программы. если вы используете блокировку, особо отслеживайте вызовы INT 23H (выход Ctrl-Break) и INT 24H (выход по критической ошибке), чтобы снять блокировки до действительного завершения программы. Рекомендуется освобождать блокировки как можно скорее. всегда блокируйте, обрабатывайте файл и освобождайте блокировку одной операцией.
Версии:
доступна, начиная с DOS 3.0
DOS Fn 5eH: Разные сетевые функции
Вход
AH = 5eH DOS 3.1+
AL = подф.: 0=дать имя машины (узла) в сети
AL = 2=установить стартовую строку сетевого принтера
AL = 3=извлечь стартовую строку сетевого принтера
прочие = (зависят от подфункции)
Выход
AX = код ошибки если CF установлен
прочие = (зависят от подфункции)
Описание:
Эти функции доступны при установленной IBM PC Network Program.
Версии:
доступны, начиная с DOS 3.1
подф. 00H: Извлекает имя машины (узла), как оно известно в сети.
вход: DS:DX=> буфер пользователя для ASCIIZ сетевого имени
выход:
DS:DX=> буфер, содержащий сетевое имя
CH= 0=имя не определено; иначе=имя определено
CL= номер имени NETBIOS (если CH ненулевой)
AX= код ошибки если CF установлен
Замеч: Сетевое имя - 15-симв. (дополненная пробелами) строка ASCIIZ
подф. 02H: Задает настроечную строку, посылаемую на принтер каждый раз, когда эта машина выдает результаты на сетевой принтер.
вход:
DS:SI=> буфер, содержащий настроечную строку (до 64 байт)
CX= длина настроечной строки
BX= индекс в списке назначений, отвечающий принтеру
выход: AX= код ошибки если CF установлен
подф. 03H: Извлекает настроечную строку принтера, заданную ранее посредством DOS Fn 5eH подф. 02H.
вход:
DS:DI=> 64-байтовый буфер пользователя для результата BX= индекс принтера в списке назначений
выход:
ES:DI=> буфер, заполненный настроечной строкой
CX= длина настроечной строки
AX= код ошибки если CF установлен
Замеч: Поскольку индекс в списке назначений может измениться в любой момент, используйте функцию 5fH подф. 02H, чтобы получить индекс непосредственно перед вызовом этой функции. DOS Fn 5fH: переназначение устройств в сети
Вход
AH = 5fH DOS 3.1+
AL = подф.: 2=получить элемент списка переназначений устройств
= 3=переназначить сетевое устройство
= 4=отменить переназначение сетевого устройства
прочие = (зависят от подфункции)
Выход
AX = код ошибки если CF установлен
Описание:
Эти функции доступны при установленной IBM PC Network Program.
Версии:
доступны, начиная с DOS 3.1
подф. 02H: Извлекает элемент из списка переназначений сетевых устройств.
вход:
DS:DI=> 128-байтовое ASCIIZ локальное имя устр. ("LPT1",0)
ES:DI=> 128-байтовый буфер с ASCIIZ сетевым именем
BX= индекс в списке назначений
выход:
DS:DI=> ASCIIZ локальное имя устройства (напр., "LPT1",0)
ES:DI=> ASCIIZ сетевое имя
BL= тип устр: 3=принтер; 04=файл 'устройство'
BH= статус устр: бит 0=1 -неверное устр.; 0=верное
CX= сохраненный параметр (при NETBIOS, всегда 0)
AX= код ошибки если CF установлен
DX,BP = (изменены)
Замеч: обычно эту функцию вызывают с BX=0, затем повторяют вызовы, увеличивая значение BX, пока DOS не вернет ошибку 12H (больше нет файлов).
подф. 03H: этот вызов определяет имена оглавлений для сети и перенаправляет доступ на сетевые принтеры. Замеч: доступ к принтеру переназначается на уровне ROM-BIOS INT 17H.
вход:
DS:SI = ASCIIZ имя исходного устройства
ES:DI = ASCIIZ назначение (сетевой путь с паролем)
BL= тип устр: 03=принтер; 04=файл 'устройство'
CX= параметр для вызывающего (задавайте 0 для NETBIOS)
выход: AX= код ошибки если CF установлен
Замеч: если BL=03, то источник задает ASCIIZ-имя принтера (например, "LPT1",0). Назначение кодируется в форме: [\\computername\{shortname|printdevice}],0,[password],0. Если пароль начинается с 00, считается, что пароля нет. Если BL=04, то источник задает ASCIIZ-имя диска (например, "F:",0), а назначение - ASCIIZ-имя пути. после вызова этой функции, локальные обращения к этому диску переназначаются на выбранные имя компьютера и путь.
подф. 04H: Отменить сетевое переназначение для указанного устройства.
вход: DS:SI=> ASCIIZ-имя устройства или ID диска
выход: AX= код ошибки если CF установлен
Замеч: если DS:SI указывает на PRN, LPT1, LPT2 или LPT3, и устройство связано с сетью, то сетевое обслуживание этого устройства прекращается. Если DS:SI указывает на ID диска и пароль (например, "F:",0,"mypswrd",0), то переназначение этого диска прекращается, и ID диска восстанавливает свое предыдущее значение.
DOS Fn 62H: дать адрес PSP
Вход
AH = 62H DOS 3.0+
Выход
BX = сегментный адрес PSP выполняющейся программы
Описание:
Эта функция возвращает в BX адрес PSP текущей программы. используется, чтобы получить адрес параметров командной строки, адрес окружения DOS и другой полезной информации в PSP.
Версии:
доступна, начиная с DOS 3.0
