Локальные сети персональных компьютеров Использование протоколов IPX, SPX, NETBIOS

NB_WAddName (0x30)


Команда добавляет указанное в поле OurName имя в таблицу имен, расположенную на рабочей станции. Имя должно быть уникальным в сети. Оно не может использоваться на других станциях ни как обычное, ни как групповое.

Если длина имени меньше 16 байт, оно должно быть дополнено справа символами пробела. Можно закрыть имя двоичным нулем для совместимости со строками языка Си. Нуль должен находиться в последней позиции имени.

После успешного выполнения команды NETBIOS присваивает имени номер и возвращает его в поле LocalSessionNumber блока NCB. Номер имени может потребоваться вам для работы с датаграммами.

В процессе добавления имени NETBIOS посылает по сети запрос. Если такое имя уже используется на какой-либо станции, эта станция пришлет ответ.

В этом случае команда завершиться с ошибкой и имя добавлено не будет.

Процедура добавления имени занимает достаточно много времени. Это связано с необходимостью выполнить опрос всех станций сети. Поэтому вы должны добавлять имена один раз в самом начале работы программы.



Поля NCB на входе Содержимое
Cmd 0x30
OurName Добавляемое имя
PostRoutine Дальний указатель на POST-программу или нулевое значение, если POST-программа не используется
AdapterNumber Номер адаптера; 0 - первый адаптер, 1 - второй

Поля NCB на выходе Содержимое
NetworkNameNumber Присвоенный номер имени
CCode Промежуточный код завершения команды
FinalCCode Окончательный код завершения команды

Содержимое поля CCode

на выходе

Значение
0x00 Нет ошибок
0x03 Неправильный код команды
0x21 Интерфейс занят
0x22 Выдано слишком много команд
0x23 Неправильное значение в поле номера адаптера AdapterNumber
0x40 - 0x4F Необычное состояние сети (Unusual network condition)
0x50 - 0xFE Сбой сетевого адаптера или другого сетевого аппаратного обеспечения

Содержимое поля

FinalCCode на выходе

Значение
0x00 Нет ошибок
0x03 Неправильный код команды
0x09 Нет доступных ресурсов
0x0D Указанное команде имя уже используется на этой станции
0x0E Переполнение таблицы имен
0x15 Неправильное имя
0x16 Имя уже используется на одной из рабочих станций в сети
0x19 Конфликт имен (внутренняя ошибка NETBIOS)
0x21 Интерфейс занят
0x22 Выдано слишком много команд
0x23 Неправильное значение в поле номера адаптера AdapterNumber
0x40 - 0x4F Необычное состояние сети (Unusual network condition)
0x50 - 0xFE Сбой сетевого адаптера или другого сетевого аппаратного обеспечения



Содержание раздела