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