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

NB_WSessionStatus (0x34)


Команда возвращает программе состояние канала, имя которого указано в поле OurName блока NCB. В качестве имени можно указать символ "*", в этом случае программа получит информацию о каналах, относящихся ко всем именам станций, имеющихся в локальной таблице имен на вызывающей команду станции.

Информация о состоянии каналов возвращается в буфер, адрес которого программа должна записать в поле Buffer блока NCB. Размер буфера должен быть указан в поле Size блока NCB.

Формат буфера можно описать следующей структурой:

struct _SESSION_STATUS { unsigned char NameNumber; unsigned char SessionCount; unsigned char DatagramsOutstanding; unsigned char ReceiveAnyoutstanding; struct _SESSION { unsigned char LocalSessionNumber; unsigned char State; char LocalName[16]; char RemoteName[16]; unsigned char ReceiveCount; unsigned char SendCount; } Session[40]; };

Приведем список полей буфера:



Название поля Назначение поля
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 Окончательный код завершения команды
Содержимое поля CCode

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

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

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