Телекоммуникационные технологии. Том 1



         

Получение информации о типе и функциональных возможностях драйвера - часть 5


Возможные ошибки:
2NO_CLASS не найдено интерфейса указанного класса;
3NO_TYPE не найдено интерфейса указанного типа;
4NO_NUMBER не найдено интерфейса с указанным номером;
5BAD_TYPE специфицирован неправильный тип пакета;
9NO_SPACE недостаточно места в памяти;
10TYPE_INUSE было обращение к данному типу и он пока занят.

При успешном выполнении запроса флаг carry=0, а в регистр AX занесен указатель (handle).

Обращение к приемнику (receiver):

(*receiver)(handle, flag, len [, buffer])

int handle;BX; указатель
int flag;AX; флаг вызова(0/1)
unsigned len;CX; целое без знака - длина пакета

if AX == 1,

char far *buffer;DS:SI; адрес буфера

Если параметр typelen равен нулю, прикладной процесс готов получать все пакеты. Очень важно, чтобы при первом обращении к receiver (AX==0) CX (длина пакета) была указана правильно, что позволит выделить нужное место в памяти. CX должна включать в себя длину MAC-заголовка и размер самого сообщения без контрольной суммы (CRC). Повторный вызов (AX==1) программы receiver указывает на то,что пакет записан в буфер и прикладная программа может с ним работать. Адрес буфера будет указан в регистрах DS:SI.




Содержание  Назад  Вперед