На входе: | BX | = | 15h. |
DX | = | Номер канала связи. | |
ES:SI | = | Указатель на буфер размером 44 байта. | |
На выходе: | AL | = | Код завершения: 00h - канал активен; EEh - указанный канал не существует. |
С помощью функции SPXGetConnectionStatus программа может проверить состояние канала. Если канал существует, в буфер, адрес которого задан в регистрах ES:SI, записывается информация о состоянии канала.
Приведем формат буфера в виде структуры:
struct CSB { unsigned char ConnectionState; unsigned char ConnectionFlags; unsigned char SrcConnectionID[2]; unsigned char DestConnectionID[2]; unsigned char SeqNumber[2]; unsigned char AckNumber[2]; unsigned char AllocNumber[2]; unsigned char RemoteAckNumber[2]; unsigned char RemoteAllocNumber[2]; unsigned char ConnectionSocket[2]; unsigned char ImmAddress[6]; unsigned char DestNetwork[4]; unsigned char DestNode[6]; unsigned char DestSocket[2]; unsigned char RetransmissionCount[2]; unsigned char EstimatedRoundtripDelay[2]; unsigned char RetransmittedPackets[2]; unsigned char SuppressedPackets[2]; };
Все поля в этой структуре имеют "перевернутый" формат, в котором младшие байты записаны по старшему адресу.
Поле ConnectionState отображает текущее состояние канала:
01h | драйвер SPX находится в состоянии ожидания приема пакета, посылаемого функцией SPXEstablishConnection; |
02h | драйвер SPX пытается создать канал с удаленной рабочей станцией после вызова функции SPXEstablishConnection; |
03h | канал создан; |
04h | канал закрыт. |
Поле ConnectionFlags содержит флаги, которые используются драйвером SPX для управления каналом. Бит 02h, в частности, управляет использованием системы периодической проверки связи. Если этот бит установлен в единицу, для данного канала выполняется периодическая проверка связи.
Поле SrcConnectionID содержит номер канала, присвоенный локальной станции. Это тот самый номер канала, который надо загружать в регистр DX перед использованием функций SPX.
Поле DestConnectionID содержит номер канала, присвоенный программе, работающей на удаленной станции.