Электронная библиотека книг Александра Фролова и Григория Фролова.
Shop2You.ru Создайте свой интернет-магазин
Библиотека
Братьев
Фроловых

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

© Александр Фролов, Григорий Фролов
Том 4, М.: Диалог-МИФИ, 1993, 160 стр.

[Назад] [Содеожание] [Дальше]

7.3. Работа с каналами

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.

[Назад] [Содеожание] [Дальше]