Intel Pentium processor - технический обзор
Технический обзор
Главная -
Вызов процедуры NETBIOSSUBMIT
Вызов процедуры NETBIOSSUBMIT
Назначение
----------
Передает Блок управления сетью (NCB) драйверу NETBIOS.
handle 0 относится к первому установленному драйверу NETBIOS. Этот
драйвер автоматически подвергнут действию процедуры NETBIOSOPEN при
необходимости (в регулярном режиме) сразу же, как только вызов
NETBIOS обратится к нему используя идентификатор 0.
NETNCB указывает на Блок управления сетью (NCB), который дол-
жен быть выполнен (несцепленный NCB) или на слово-связку, предшест-
вующее NCB (сцепленный NCB).
NETNCBOPT определяет опции обработки NCB, которые включают:
Сцепление: 0 отдельных NCB передается
(mask 0x3) 1 отдельный NCB с повторением при ошибке
2 NCB сцепливаются с продолжением при ошибке
2 NCB сцепливаются с остановкой при ошибке
Опции сцепления определяют, передается ли отдельный NCB или
цепочка NCB. Отдельный Блок NCB может быть выполнен с опцией пов-
торной передачи при ошибке, - в этом случае ядро сети выдает NCB
установленное количество раз в ответ на следующие ошибки:
09H - нет доступных ресурсов;
12H - отказано в открытии сеанса;
21H - занят интерфейс.
Сцепленные NCB должны быть в одном и том же сегменте и должны
быть связаны 16-битовым указателем смещения, который предшествует
NCB. Смещение 0xFFFF определяет конец сцепливания.
Хотя может быть сцеплена любая последовательность команд NCB,
не все возможности являются приемлимыми. Например, Вы не можете от-
крыть сеанс и послать пакет данных по нему, связав команды SEND и
CALL. Поле NCB_LSN, возвращенное по команде CALL NCB, должно быть
скопировано в SEND NCB - ядро сети не поддерживает этого автомати-
чески.
Блоки управления сетью (NCB) в цепочке "с продолжением при
ошибке" выполняются независимо один от другого, и вне зависимости
от ошибок в цепочке; подобная цепочка просто обеспечивает быструю
передачу набора Блоков NCB драйверу. Блоки, которые не были обрабо-
таны вследствие ошибки ранее в цепи, будут иметь свое поле
NCB-CMD-CPLT установленное как 0xB (Команда отменена). Этот тип це-
почки обычно должен иметь только режим ожидания. Неожидаемые Блоки
NCB принимаются, но в этом случае именно немедленный (а не конеч-
ный) возврат определяет, продолжится или остановится процесс.
Условие вызова
--------------
int far pascal netbiossubmit (nethandle, netncbopt, netncb)
int nethandle; /* handle to issue ncb against */
unsigned short netncbopt; /* option flags */
struct ncb far * netncb; /* Address of NCB */
Функция возвращает 0, если все нормально. Возможными возвра-
тами ошибок являются:
- неверный handle;
- неправильные опции;
- отказано в доступе;
- недоступны ресурсы драйвера;
- определенные NETBIOS коды немедленного возврата
(неожидаемый NCB);
- определенные NETBIOS коды конечного возврата
(режим ожидания NCB).
20.05.2012