7. Приложение 3. Функции NETBIOS
NB_WAddName (0x30) - добавить имя
Поля NCB на входе |
Содержимое |
Cmd |
0x30 |
OurName |
Добавляемое имя |
PostRoutine |
Дальний указатель на POST-программу или
нулевое значение, если POST-программа не
используется |
AdapterNumber |
Номер адаптера; 0 - первый адаптер, 1 -
второй |
Поля NCB на выходе |
Содержимое |
NetworkNameNumber |
Присвоенный номер имени |
CCode |
Промежуточный код завершения команды |
FinalCCode |
Окончательный код завершения команды |
NB_AddName (0xB0)
Команда аналогична предыдущей, за исключением
того, что она выполняется без ожидания и в поле Cmd
необходимо записать значение 0xB0.
NB_WAddGroupName (0x36) - добавить
групповое имя
Поля NCB на входе |
Содержимое |
Cmd |
0x36 |
OurName |
Добавляемое групповое имя |
PostRoutine |
Дальний указатель на POST-программу или
нулевое значение, если POST-программа не
используется |
AdapterNumber |
Номер адаптера; 0 - первый адаптер, 1 -
второй |
Поля NCB на выходе |
Содержимое |
NetworkNameNumber |
Присвоенный номер имени |
CCode |
Промежуточный код завершения команды |
FinalCCode |
Окончательный код завершения команды |
NB_AddGroupName (0xB6)
Команда аналогична предыдущей, за исключением
того, что она выполняется без ожидания и в поле Cmd
необходимо записать значение 0xB6.
NB_WDeleteName (0x31) - удалить имя
Поля NCB на входе |
Содержимое |
Cmd |
0x31 |
OurName |
Удаляемое имя |
PostRoutine |
Дальний указатель на POST-программу или
нулевое значение, если POST-программа не
используется |
AdapterNumber |
Номер адаптера; 0 - первый адаптер, 1 -
второй |
Поля NCB на выходе |
Содержимое |
CCode |
Промежуточный код завершения команды |
FinalCCode |
Окончательный код завершения команды |
NB_DeleteName (0xB1)
Команда аналогична предыдущей, за исключением
того, что она выполняется без ожидания и в поле Cmd
необходимо записать значение 0xB1.
NB_WSendDatagram (0x20) - послать
датаграмму
Поля NCB на входе |
Содержимое |
Cmd |
0x20 |
NetworkNameNumber |
Номер, присвоенный при добавлении имени |
CallName |
Имя станции, которой передаются данные |
Buffer |
Адрес буфера, содержащего передаваемые
данные |
Size |
Размер буфера |
PostRoutine |
Дальний указатель на POST-программу или
нулевое значение, если POST-программа не
используется |
AdapterNumber |
Номер адаптера; 0 - первый адаптер, 1 -
второй |
Поля NCB на выходе |
Содержимое |
CCode |
Промежуточный код завершения команды |
FinalCCode |
Окончательный код завершения команды |
NB_SendDatagram (0xA0)
Команда аналогична предыдущей, за исключением
того, что она выполняется без ожидания и в поле Cmd
необходимо записать значение 0xA0.
NB_WSendBroadcastDatagram (0x22) - послать
датаграмму одновременно всем станциям
Поля NCB на входе |
Содержимое |
Cmd |
0x22 |
NetworkNameNumber |
Номер, присвоенный при добавлении имени |
Buffer |
Адрес буфера, содержащего передаваемые
данные |
Size |
Размер буфера |
PostRoutine |
Дальний указатель на POST-программу или
нулевое значение, если POST-программа не
используется |
AdapterNumber |
Номер адаптера; 0 - первый адаптер, 1 -
второй |
Поля NCB на выходе |
Содержимое |
CCode |
Промежуточный код завершения команды |
FinalCCode |
Окончательный код завершения команды |
NB_SendBroadcastDatagram (0xA2)
Команда аналогична предыдущей, за исключением
того, что она выполняется без ожидания и в поле Cmd
необходимо записать значение 0xA2.
NB_WReceiveDatagram (0x21) - принять
датаграмму
Поля NCB на входе |
Содержимое |
Cmd |
0x21 |
NetworkNameNumber |
Номер, присвоенный при добавлении имени
или 0xFF |
Buffer |
Адрес буфера, содержащего передаваемые
данные |
Size |
Размер буфера |
PostRoutine |
Дальний указатель на POST-программу или
нулевое значение, если POST-программа не
используется |
AdapterNumber |
Номер адаптера; 0 - первый адаптер, 1 -
второй |
Поля NCB на выходе |
Содержимое |
CallName |
Имя станции, от которой получена
датаграмма |
Size |
Размер принятого блока данных |
CCode |
Промежуточный код завершения команды |
FinalCCode |
Окончательный код завершения команды |
NB_ReceiveDatagram (0xA1)
Команда аналогична предыдущей, за исключением
того, что она выполняется без ожидания и в поле Cmd
необходимо записать значение 0xA1.
NB_WReceiveBroadcastDatagram (0x23) - принять
датаграмму, посланную одновременно всем
станциям в сети
Поля NCB на входе |
Содержимое |
Cmd |
0x23 |
NetworkNameNumber |
Номер, присвоенный при добавлении имени
или 0xFF |
Buffer |
Адрес буфера, содержащего передаваемые
данные |
Size |
Размер буфера |
PostRoutine |
Дальний указатель на POST-программу или
нулевое значение, если POST-программа не
используется |
AdapterNumber |
Номер адаптера; 0 - первый адаптер, 1 -
второй |
Поля NCB на выходе |
Содержимое |
CallName |
Имя станции, от которой получена
датаграмма |
Size |
Размер принятого блока данных |
CCode |
Промежуточный код завершения команды |
FinalCCode |
Окончательный код завершения команды |
NB_ReceiveBroadcastDatagram (0xA3)
Команда аналогична предыдущей, за исключением
того, что она выполняется без ожидания и в поле Cmd
необходимо записать значение 0xA3.
NB_WCall (0x10) - создать канал с
передающей стороны
Поля NCB на входе |
Содержимое |
Cmd |
0x10 |
CallName |
Имя, с которым устанавливается канал |
OurName |
Имя станции, создающей канал |
ReceiveTimeout |
Время ожидания приема, в 1/2 с |
SendTimeout |
Время ожидания передачи, в 1/2 с |
PostRoutine |
Дальний указатель на POST-программу или
нулевое значение, если POST-программа не
используется |
AdapterNumber |
Номер адаптера; 0 - первый адаптер, 1 -
второй |
Поля NCB на выходе |
Содержимое |
LocalSessionNumber |
Присвоенный номер канала |
CCode |
Промежуточный код завершения команды |
FinalCCode |
Окончательный код завершения команды |
NB_Call (0x90)
Команда аналогична предыдущей, за исключением
того, что она выполняется без ожидания и в поле Cmd
необходимо записать значение 0x90.
NB_WListen (0x11) - создать канал с
принимающей стороны
Поля NCB на входе |
Содержимое |
Cmd |
0x11 |
CallName |
Имя, с которым устанавливается канал.
Если в первый байт имени записать символ "*",
канал будет установлен с любой вызывающей
станцией |
OurName |
Имя станции, создающей канал с
принимающей стороны |
ReceiveTimeout |
Время ожидания приема, в 1/2 с |
SendTimeout |
Время ожидания передачи, в 1/2 с |
PostRoutine |
Дальний указатель на POST-программу или
нулевое значение, если POST-программа не
используется |
AdapterNumber |
Номер адаптера; 0 - первый адаптер, 1 -
второй |
Поля NCB на выходе |
Содержимое |
LocalSessionNumber |
Присвоенный номер канала |
CallName |
В это поле записывается имя вызвавшей
станции, если при установлении канала было
указано имя "*" |
CCode |
Промежуточный код завершения команды |
FinalCCode |
Окончательный код завершения команды |
NB_Listen (0x91)
Команда аналогична предыдущей, за исключением
того, что она выполняется без ожидания и в поле Cmd
необходимо записать значение 0x91.
NB_WHangUp (0x12) - закрыть канал
Поля NCB на входе |
Содержимое |
Cmd |
0x12 |
LocalSessionNumber |
Номер закрываемого канала |
PostRoutine |
Дальний указатель на POST-программу или
нулевое значение, если POST-программа не
используется |
AdapterNumber |
Номер адаптера; 0 - первый адаптер, 1 -
второй |
Поля NCB на выходе |
Содержимое |
CCode |
Промежуточный код завершения команды |
FinalCCode |
Окончательный код завершения команды |
NB_HangUp (0x92)
Команда аналогична предыдущей, за исключением
того, что она выполняется без ожидания и в поле Cmd
необходимо записать значение 0x92.
NB_WSessionStatus (0x34) - получить
состояние канала
Название поля |
Назначение поля |
NameNumber |
Номер имени канала |
SessionCount |
Количество каналов |
DatagramsOutstanding |
Количество выданных команд на прием
датаграмм |
ReceiveAnyoutstanding |
Количество выданных команд на прием
командой NB_ReceiveAny |
Session |
Массив структур, описывающих каждый
канал в отдельности |
LocalSessionNumber |
Номер канала |
State |
Состояние канала:
1 - ожидание завершения команды NB_Listen;
2 - ожидание завершения команды NB_Call;
3 - канал установлен;
4 - ожидание завершения команды NB_HangUp;
5 - команда NB_HangUp завершила свое вы-
полнение;
6 - канал закрыт с ошибкой. |
LocalName |
Имя локальной станции |
RemoteName |
Имя удаленной станции |
ReceiveCount |
Количество ожидающих завершения команд
NB_Receive |
SendCount |
Количество ожидающих завершения команд
NB_Send |
Поля NCB на входе |
Содержимое |
Cmd |
0x34 |
Buffer |
Дальний адрес буфера для приема
информации о состоянии каналов |
Size |
Размер буфера |
OurNames |
Имя канала, для которого необходимо
получить информацию о состоянии. В качестве
имени можно указывать "*" |
PostRoutine |
Дальний указатель на POST-программу или
нулевое значение, если POST-программа не
используется |
AdapterNumber |
Номер адаптера; 0 - первый адаптер, 1 -
второй |
Поля NCB на выходе |
Содержимое |
Size |
Размер заполненной части буфера |
CCode |
Промежуточный код завершения команды |
FinalCCode |
Окончательный код завершения команды |
NB_SessionStatus (0xB4)
Команда аналогична предыдущей, за исключением
того, что она выполняется без ожидания и в поле Cmd
необходимо записать значение 0xB4.
NB_WSend (0x14) - передать данные
через канал
Поля NCB на входе |
Содержимое |
Cmd |
0x14 |
LocalSessionNumber |
Номер используемого канала |
Buffer |
Указатель на буфер, содержащий
передаваемые данные |
Size |
Размер буфера |
PostRoutine |
Дальний указатель на POST-программу или
нулевое значение, если POST-программа не
используется |
AdapterNumber |
Номер адаптера; 0 - первый адаптер, 1 -
второй |
Поля NCB на выходе |
Содержимое |
CCode |
Промежуточный код завершения команды |
FinalCCode |
Окончательный код завершения команды |
NB_Send (0x94)
Команда аналогична предыдущей, за исключением
того, что она выполняется без ожидания и в поле Cmd
необходимо записать значение 0x94.
NB_WSendNoAck (0x71) - передать данные
через канал без подтверждения
Поля NCB на входе |
Содержимое |
Cmd |
0x71 |
LocalSessionNumber |
Номер используемого канала |
Buffer |
Указатель на буфер, содержащий
передаваемые данные |
Size |
Размер буфера |
PostRoutine |
Дальний указатель на POST-программу или
нулевое значение, если POST-программа не
используется |
AdapterNumber |
Номер адаптера; 0 - первый адаптер, 1 -
второй |
Поля NCB на выходе |
Содержимое |
CCode |
Промежуточный код завершения команды |
FinalCCode |
Окончательный код завершения команды |
NB_SendNoAck (0xF1)
Команда аналогична предыдущей, за исключением
того, что она выполняется без ожидания и в поле Cmd
необходимо записать значение 0xF1.
NB_WChainSend (0x17) - передать данные
через канал, используя сцепленные буферы
Поля NCB на входе |
Содержимое |
Cmd |
0x17 |
LocalSessionNumber |
Номер используемого канала |
Buffer |
Указатель на первый буфер, содержащий
передаваемые данные |
Size |
Размер первого буфера |
CallName |
Первые два байта содержат размер
второго буфера, следующие четыре байта - дальний
адрес второго буфера |
PostRoutine |
Дальний указатель на POST-программу или
нулевое значение, если POST-программа не
используется |
AdapterNumber |
Номер адаптера; 0 - первый адаптер, 1 -
второй |
Поля NCB на выходе |
Содержимое |
CCode |
Промежуточный код завершения команды |
FinalCCode |
Окончательный код завершения команды |
NB_ChainSend (0x97)
Команда аналогична предыдущей, за исключением
того, что она выполняется без ожидания и в поле Cmd
необходимо записать значение 0x97.
NB_WChainSendNoAck (0x72) - передать
данные через канал, используя сцепленные буферы
без подтверждения
Поля NCB на входе |
Содержимое |
Cmd |
0x72 |
LocalSessionNumber |
Номер используемого канала |
Buffer |
Указатель на первый буфер, содержащий
передаваемые данные |
Size |
Размер первого буфера |
CallName |
Первые два байта содержат размер
второго буфера, следующие четыре байта - дальний
адрес второго буфера |
PostRoutine |
Дальний указатель на POST-программу или
нулевое значение, если POST-программа не
используется |
AdapterNumber |
Номер адаптера; 0 - первый адаптер, 1 -
второй |
Поля NCB на выходе |
Содержимое |
CCode |
Промежуточный код завершения команды |
FinalCCode |
Окончательный код завершения команды |
NB_ChainSendNoAck (0xF2)
Команда аналогична предыдущей, за исключением
того, что она выполняется без ожидания и в поле Cmd
необходимо записать значение 0xF2.
NB_WReceive (0x15) - принять данные
через канал
Поля NCB на входе |
Содержимое |
Cmd |
0x15 |
LocalSessionNumber |
Номер используемого канала |
Buffer |
Указатель на буфер, используемый для
записи принятых данных |
Size |
Размер буфера |
PostRoutine |
Дальний указатель на POST-программу или
нулевое значение, если POST-программа не
используется |
AdapterNumber |
Номер адаптера; 0 - первый адаптер, 1 -
второй |
Поля NCB на выходе |
Содержимое |
Size |
Количество принятых и записанных в
буфер байт данных |
CCode |
Промежуточный код завершения команды |
FinalCCode |
Окончательный код завершения команды |
NB_Receive (0x95)
Команда аналогична предыдущей, за исключением
того, что она выполняется без ожидания и в поле Cmd
необходимо записать значение 0x95.
NB_WReceiveAny (0x16) - принять данные
через канал от любого имени
Поля NCB на входе |
Содержимое |
Cmd |
0x16 |
NetworkNameNumber |
Номер имени или 0xFF |
Buffer |
Указатель на буфер, используемый для
записи принятых данных |
Size |
Размер буфера |
PostRoutine |
Дальний указатель на POST-программу или
нулевое значение, если POST-программа не
используется |
AdapterNumber |
Номер адаптера; 0 - первый адаптер, 1 -
второй |
Поля NCB на выходе |
Содержимое |
Size |
Количество принятых и записанных в
буфер байт данных |
NetworkNameNumber |
Номер имени станции, от которой пришли
данные |
CCode |
Промежуточный код завершения команды |
FinalCCode |
Окончательный код завершения команды |
NB_ReceiveAny (0x96)
Команда аналогична предыдущей, за исключением
того, что она выполняется без ожидания и в поле Cmd
необходимо записать значение 0x96.
NB_WResetAdapter (0x32) - сбросить
сетевой адаптер
Поля NCB на входе |
Содержимое |
Cmd |
0x32 |
LocalSessionNumber |
Максимальное количество каналов или 0
для использования значения по умолчанию |
NetworkNameNumber |
Максимальное количество блоков NCB или 0
для использования значения по умолчанию |
AdapterNumber |
Номер адаптера; 0 - первый адаптер, 1 -
второй |
Поля NCB на выходе |
Содержимое |
FinalCCode |
Окончательный код завершения команды |
NB_WCancel (0x35) - отменить команду
Поля NCB на входе |
Содержимое |
Cmd |
0x35 |
Buffer |
Указатель на блок NCB, для которого
отменяется команда |
AdapterNumber |
Номер адаптера; 0 - первый адаптер, 1 -
второй |
Поля NCB на выходе |
Содержимое |
FinalCCode |
Окончательный код завершения команды |