Спецификация интерфейса сетевого драйвера - Network Driver Interface Specification

В Спецификация интерфейса сетевого драйвера (NDIS) является интерфейс прикладного программирования (API) для контроллеры сетевого интерфейса (Сетевые карты).

Технические характеристики

Он был разработан совместно Microsoft и 3Com Corporation и в основном используется в Майкрософт Виндоус. Однако Открытый исходный код NDISwrapper и Проект зла оболочка драйвера проекты позволяют использовать многие NDIS-совместимые сетевые карты с Linux, FreeBSD и NetBSD. magnussoft ZETA, производная от BeOS, поддерживает ряд драйверов NDIS.

NDIS формирует управление логической связью (LLC) подуровень, который является верхним подуровнем OSI уровень канала передачи данных (слой 2). Таким образом, NDIS действует как интерфейс между контроль доступа к медиа (MAC) подуровень, который является нижним подуровнем уровня канала данных, и сетевой уровень (слой 3).

NDIS - это библиотека функций, которую часто называют "обертка ", который скрывает основную сложность оборудования NIC и служит стандартным интерфейсом для драйверов сетевого протокола уровня 3 и MAC-драйверов аппаратного уровня.

Версии NDIS, поддерживаемые различными версиями Windows, следующие.[1]:

Трафик, принимаемый сетевым адаптером, контролируется NDIS. минипорт Драйвер при этом различные протоколы, такие как TCP / IP, реализуются драйверами протокола NDIS. Один минипорт может быть связан с одним или несколькими протоколами. Это означает, что трафик, поступающий в минипорт, может быть получен параллельно несколькими драйверами протокола. Например, Winpcap добавляет второй драйвер протокола на выбранный минипорт для захвата входящих пакетов. Кроме того, можно смоделировать несколько виртуальных сетевых адаптеров, реализовав драйверы виртуального минипорта, которые отправляют и получают трафик от одного физического сетевого адаптера. Одним из примеров использования драйвера виртуального минипорта является добавление виртуальных сетевых адаптеров, каждая из которых имеет свой Виртуальная локальная сеть. Поскольку реализации не могут предполагать, что другие драйверы получили те же буферы, нужно рассматривать входящие буферы как только для чтения, а драйвер, изменяющий содержимое пакета, должен выделять свои собственные буферы.

А минипорт тип аппаратного драйвера, часть Модель драйвера Windows. Эти USB, Аудио, SCSI и сетевая карта переходники. Обычно они должны быть источником и двоичная совместимость между Windows 98 и Windows 2000 и зависят от оборудования, но управляют доступом к оборудованию через определенные автобус драйвер класса.[5]

Другой тип драйвера - это промежуточный драйвер NDIS. Промежуточные драйверы находятся между уровнями MAC и IP и могут контролировать весь трафик, принимаемый сетевой картой. На практике промежуточные драйверы реализуют интерфейсы как минипорта, так и протокола. Драйвер минипорта и драйвер протокола фактически взаимодействуют с соответствующими интерфейсами минипорта и протокола, которые находятся в промежуточном драйвере. Эта конструкция позволяет добавлять несколько связанных промежуточных драйверов между драйверами минипорта и протокола. Поэтому производители драйверов не могут предполагать, что интерфейс, на который они отправляют трафик, реализован последним драйвером в цепочке. Для написания приложений с использованием NDIS можно использовать образцы, прилагаемые к Microsoft Комплект драйверов Windows (WDK). Образец «PassThru» является хорошей отправной точкой для промежуточных драйверов, поскольку он реализует все необходимые детали, необходимые для этого типа драйвера, но просто передает трафик следующему драйверу в цепочке.

Смотрите также

использованная литература

  1. ^ «Обзор версий NDIS - драйверы Windows». docs.microsoft.com. Получено 2020-03-24.
  2. ^ Сетевые драйверы (Windows Embedded CE 6.0)
  3. ^ Что нового (Windows Embedded Compact 7)
  4. ^ а б c d е ж г «Обзор версий NDIS». Microsoft. Получено 2019-06-28.
  5. ^ «Введение в Windows Driver Foundation». Сеть разработчиков Microsoft. 2006-10-13. Получено 2010-12-06. Модели драйверов для конкретных классов устройств обычно структурированы как драйвер порта, написанный Microsoft, в сочетании с драйвером минипорта, написанным независимым поставщиком оборудования. Драйвер порта выполняет большую часть работы, необходимой для класса устройства, а драйвер минипорта поддерживает характеристики устройства.

внешние ссылки