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