15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту

Библиотека Системного Программиста. Том 8
Локальные сети персональных компьютеров. Использование протоколов IPX, SPX, NETBIOS

6. Приложение 2. ФУНКЦИИ SPX

6.1. Инициализация SPX

6.2. Образование канала связи

6.3. Прием и передача пакетов

6.4. Разрыв канала связи

6.5. Проверка состояния канала

6.1. Инициализация SPX

SPXCheckInstallation - инициализировать SPX

На входе:BX= 10h.
AL= 00h.
На выходе:AL= Код завершения:
00h - SPX не установлен;
FFh - SPX установлен.
BH= Верхний (major) номер версии SPX.
BL= Нижний (minor) номер версии SPX.
CX= Максимальное количество каналов SPX, поддерживаемых драйвером SPX.
DX= Количество доступных каналов SPX.

6.2. Образование канала связи

SPXListenForConnection - создать канал с принимающей стороны

На входе:BX= 12h.
AL= Счетчик повторов попыток создать канал связи.
AH= Флаг включения системы периодической проверки связи (Watchdog Supervision Required Flag).
ES:SI= Указатель на блок ECB.
На выходе: Регистры не используются.

SPXEstablishConnection - создать канал с передающей стороны

На входе:BX= 11h
AL= Счетчик повторов попыток создать канал связи.
AH= Флаг включения системы периодической проверки связи (Watchdog Supervision Required Flag).
ES:SI= Указатель на блок ECB
На выходе:AL= Промежуточный код завершения:
00h - выполняется попытка создать канал;
FFh - указанный в блоке ECB сокет закрыт;
FDh - сбойный пакет: либо счетчик фрагментов не равен 1, либо размер фрагмента не равен 42;
EFh - переполнение локальной таблицы номеров каналов связи.
DXПрисвоенный номер канала.

6.3. Прием и передача пакетов

SPXListenForSequencedPacket - принять SPX-пакет

17h.Указатель на блок ECB.Регистры не используются.
На входе:BX=
ES:SI=
На выходе:

SPXSendSequencedPackett - передать SPX-пакет

На входе:BX= 16h.
ES:SI= Указатель на блок ECB
DX= Номер канала связи.
На выходе: Регистры не используются.

6.4. Разрыв канала связи

SPXTerminateConnection - закрыть канал

13hУказатель на блок ECBНомер канала связи Регистры не используются.
На входе:BX=
ES:SI=
DX=
На выходе:

SPXAbortConnection - закрыть канал аварийно

14h.Номер канала связи. Регистры не используются.
На входе:BX=
DX=
На выходе:

6.5. Проверка состояния канала

SPXGetConnectionStatus - получить состояние канала

На входе:BX= 15h.
DX= Номер канала связи.
ES:SI= Указатель на буфер размером 44 байта.
На выходе:AL= Код завершения:
00h - канал активен;
EEh - указанный канал не существует.