Протоколы Internet


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


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

При работе с драйвером следует проявлять осторожность и спасать нужные вам регистры. Следует также помнить, что порядок байтов в PC и в некоторых сетях, включая Ethernet, не совпадает. Описание основных запросов, посылаемых пакетному драйверу:

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

driver_info AH == 1,

AL == 255 (код запроса)

public

_driver_info

_driver_info

proc near

 

 

mov AX, 1FFH

; ah=1, al=255

 

call int_pkt

; обращение к драйверу

 

jnc lv

 

 

mov AX, seg _PARAM.ER_CODE

 

 

mov DS, AX

 

 

mov _PARAM.ER_CODE, 272

; Устанавливаем код "Нет инф. о драйвере"

lv:

ret

_driver_info

endp


int_pkt:

 

; Подпрограмма обращения к драйверу

 

push ds

 

 

push es

 

 

pushf

 

 

cli

 

 

call _param.Handler

; адрес _param.Handler должен быть определен раньше

 

pop es

 

 

pop ds

 

 

ret

 

Целочисленный указатель (handle) должен быть занесен в регистр BX (для старых драйверов). В случае ошибки устанавливается флаг carry, а код ошибки заносится в регистр DH. Сообщение BAD_HANDLE (неверный указатель) возможно только для старых драйверов. При благополучном исполнении флаг carry равен нулю, а в регистры будет занесены следующие параметры:

BX

версия;

CH

класс;

CL

номер;

DX

тип;

DS:SI

указывают на строку имени драйвера;

AL

функциональные возможности.

AL = 1

гарантируется выполнение базовых функций;

= 2

обеспечено выполнение базового и расширенного набора функций;

= 5

выполняется базовый и экстра-набор функций;

= 6

выполним полный набор функций;

= 255

драйвер не установлен.

<


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



Книжный магазин