Протоколы Internet


Сетевые драйверы - часть 12


AH == 6 (код запроса)

int handle; BX (указатель)

char far *buf; ES:DI (адрес буфера)

int len; CX (длина адреса в байтах)

В случае ошибки флаг carry=1, а в регистр DH заносится код ошибки. Возможные ошибки:

1 BAD_HANDLE;

9 NO_SPACE. При успешном выполнении запроса флаг carry=0, а в регистр CX занесена длина адреса.

Копирует текущее значение сетевого (физического) адреса интерфейса в буфер. Если получено сообщение NO_SPACE, это означает, что выделенного места (len=CX) для копирования адреса не хватило.

7. Возвращение интерфейса в исходное состояние reset_interface(handle)

AH == 7 (код запроса)

int handle; BX (указатель)

В случае ошибки флаг carry=1, а в регистр DH заносится код ошибки. Возможные ошибки:

1 BAD_HANDLE;

15 CANT_RESET.

Возвращает интерфейс в исходное состояние, прерывая все процессы. Местное значение физического сетевого адреса, если оно было изменено, восстанавливается из ROM, прием переключается в режим 3, а список мультикастинг-адресов обнуляется. При работе с несколькими указателями (handle) возможны серьезные неприятности, по этому выполнение запроса блокируется и присылается сообщение CANT_RESET.

8. Запрос установки режима приема пакетов set_rcv_mode(handle,mode)

AH == 20 (код запроса) int handle;

BX (входные параметры - указатель) int mode;

CX (код режима приема пакетов)

В случае ошибки флаг carry=1, а в регистр DH заносится код ошибки. Возможные ошибки:

1 BAD_HANDLE;

8 BAD_MODE.

Устанавливает режим приема пакетов. Режим 3 используется по умолчанию. Возможны (но не для всех интерфейсов) следующие режимы:

Режим

Значение

1

выключение приема пакетов;

2

прием пакетов, адресованных только данному интерфейсу;

3

режим 2 плюс бродкастинг-пакеты;

4

режим 3 плюс некоторые мультикастинг-пакеты;

5

режим 3 плюс все мультикастинг-пакеты;

6

все пакеты.

9. Считывание действующего режима приема пакетов get_rcv_mode(handle)

AH == 21 (код запроса)

int handle; BX (входной параметр - указатель)

В случае ошибки флаг carry=1, а в регистр DH заносится код ошибки 1 BAD_HANDLE. При успешном выполнении запроса флаг carry=0, а в регистр AX заносится код режима приема пакетов.




Начало  Назад  Вперед