В 1989 г Microsoft и 3Com совместно разработали спецификацию
интерфейса взаимодействия между подуровнем MAC канального уровня модели OSI и
драйверами протоколов, располагающихся на вышележащих уровнях. Стандарт получил
название Network Driver Interface Specification (NDIS - спецификация интерфейса
сетевых драйверов). Он играет ключевую роль в сетевой архитектуре NT и служит
для отделения логики работы драйвера сетевой карты от особенностей реализации
различных сетевых протоколов.
С тех пор NDIS превратилась в целую семью сетевых стандартов,
и сейчас эта семья включает стандарты для драйверов сетевых карт локальных и
глобальных сетей (LAN NIC driver и WAN NIC driver), и стандарты для
промежуточных драйверов (intermediate driver), располагающихся между драйверами
протоколов и драйверами сетевых карт.
Вместо того чтобы писать несколько транспортно-зависимых драйверов,
производители сетевого оборудования реализуют интерфейс NDIS на самом верхнем
уровне одного драйвера сетевой карты. Это позволяет любому драйверу протокола
работать с данной сетевой картой, вызывая функции этого интерфейса. Таким
образом, пользователь может работать и по протоколу TCP/IP, и по протоколу
NetBEUI, при помощи одной сетевой карты и одного драйвера этой сетевой карты.
Библиотека NDIS является драйвером, реализующим взаимодействие между
компонентами, которые обращаются к ней, такими как: драйверы транспортов, NDIS
драйверы промежуточного уровня, драйвер ndiswan.sys, драйвер ndistapi.sys, NDIS
драйверы сетевых карт локальных и глобальных сетей. Интерфейс, реализуемый NDIS
библиотекой, является «call and return» интерфейсом (асинхронным интерфейсом).
Драйверы вызывают функции, расположенные в NDIS библиотеке, a NDIS библиотека
может в свою очередь вызывать функции из других драйверов, чтобы выполнить
операцию. Пакеты запроса ввода/вывода (IRP) не используются в NDIS спецификации.
Так как NDIS драйверы существуют в среде, созданной NDIS библиотекой, то
структура и интерфейс, используемые этими драйверами, определяются NDIS
библиотекой. Это позволяет NDIS драйверам быть переносимыми между различными
операционными системами, поддерживающими данную спецификацию.
Цели NDIS библиотеки следующие:
Изолировать NDIS драйверы сетевых карт и промежуточные
драйверы от операционной системы. NDIS библиотека экспортирует множество
стандартных функций и макросов, которые скрывают детали операционной
системы, и используются всеми NDIS драйверами. NDIS драйверы могут вызывать
только те функции, которые обеспечивает NDIS библиотека. Например, создание
таймера для целей синхронизации, или создание связанного списка
осуществляется через NDIS. Требование к разработчикам применять вызовы NDIS
функций позволяет сделать код переносимым между операционными системами
фирмы Microsoft, которые поддерживают NDIS.
Выполнять как можно больше общих операций. Одной из
основных целей NDIS библиотеки является исключение кодов общих функций из
NDIS драйверов. Это означает, что большинству NDIS драйверов необходимо
реализовать только небольшое число функций, необходимых для выполнения
операций, специфических для оборудования. NDIS библиотека поддерживает
информацию о статусе операции, указатели на функции интерфейсов верхнего и
нижнего уровней, параметры этих функций, и многие другие системные значения
для драйверов протоколов и драйверов сетевых карт.
Обеспечивать добавление заголовков к данным пользователя
без необходимости их перекопирования, во время передачи данных по стеку
сетевых драйверов. Во время перемещения сетевого сообщения по стеку
драйверов сверху вниз, на каждом уровне к первоначальному сообщению может
быть добавлен свой заголовок (реже хвост). NDIS спецификация делает
возможным добавление подобных структур спереди или сзади без необходимости
перекопирования первоначального сообщения. Эта возможность построения
сетевого сообщения без перекопирований данных позволяет достигать высокой
производительности при передаче данных.
NDIS-библиотека получает IRP-пакеты от TDI-транспортов и
транслирует их в вызовы функций NDIS-драйверов. Для передачи данных между
NDIS-драйверами пакеты IRP не используются. Вместо них используются, например,
NDIS-пакеты, описанные в разделе «Особенности реализации NDIS-драйверов».
Инструменты Internet Explorer 8 Beta 2 для разработчиков.
В марте этого года мы
уже писали об инструментах для разработчика в IE8 Beta 1, но IE8 Beta2
позволяет более полно использовать инструменты за счет значительных изменений в
имеющихся функциях, а также новых возможностей.
В принципе инструменты для разработчика должны обладать следующими свойствами: Быть интегрированными и простыми в использовании;
Иметь визуальный интерфейс; C их помощью можно быстро протестировать сайт.
Дата проведения: 28 октября 2008 г.; Место проведения: Амбер Плаза, Москва,
Россия. Конференция для веб-разработчиков и разработчиков мобильных приложений в
Москве. Узнайте, как наилучшим образом использовать инструменты разработки и API
от Google, чтобы создавать социальные, мобильные и картографические приложения,
как использовать AJAX/JavaScript инструменты и библиотеки от Google и многое
другое из первых уст.
ТОП 10 самых раздражающих факторов для программиста.
Совсем недавно наткнулся в интернете на забавный "хит-парад" наиболее
раздражающих вещей для программиста. Поскольку он был на английском — решил
перевести текст и несколько адаптировать к нашим реалиям…