Использование протоколов IPX, SPX, NETBIOS

       

NB_WAddName (0x30)


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

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

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

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

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

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

Поля NCB на входе

Содержимое
Cmd0x30
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Сбой сетевого адаптера или другого сетевого аппаратного обеспечения



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